簡體   English   中英

是否有一種方法僅返回ActionScript中RegEx的匹配項或第一個變量匹配項或null?

[英]Is there a method that returns only the match or first variable match of a RegEx in ActionScript or null?

是否有只返回匹配項的方法,如果沒有匹配項,則返回null?

這可能是大腦凍結,但是有沒有一種方法可以返回匹配結果,否則返回null?

例如,如果我只想返回第一個變量,否則返回null:

var value:String = "image/png".toLowerCase();
var result:String = value.find(/image/(png|jpg|jpeg|gif)/);

if (result=="png") {
    // do something
}

我知道這里有replaceexecmatch ,它們返回數組等,但是我只是在尋找一個返回我的第一個match或null的方法。

如果沒有這樣的功能,我希望有。 我真希望我能成為上帝。

沒有執行此操作的特定方法。 最接近的方法是String.matchRegExp.exec ,由於正則表達式沒有全局修飾符,因此在這里幾乎沒有什么區別。 將正則表達式與全局修飾符一起使用后,您別無選擇,只能使用RegExp.exec

使用String.matchRegExp.exec可以檢查結果是否為null ,如果結果不為null則提取Group 1值以檢查其是否為png

var pattern:RegExp = /image\/(png|jpg|jpeg|gif)/; 
var str:String = "image/png".toLowerCase(); 
var m:Array = pattern.exec(str); 
if (m != null) 
{ 
    if (m[1] == "png") {
        // Do stuff
    }
}

注意, /必須在正則表達式文字中轉義。

您也可以將模式稍微收縮為(png|jpe?g|gif) ,但盡管它在內部會更好地工作,但可讀性會下降。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM