[英]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
}
我知道這里有replace
和exec
和match
,它們返回數組等,但是我只是在尋找一個返回我的第一個match或null的方法。
如果沒有這樣的功能,我希望有。 我真希望我能成為上帝。
沒有執行此操作的特定方法。 最接近的方法是String.match
或RegExp.exec
,由於正則表達式沒有全局修飾符,因此在這里幾乎沒有什么區別。 將正則表達式與全局修飾符一起使用后,您別無選擇,只能使用RegExp.exec
。
使用String.match
或RegExp.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.