Javascript 是否存在只返回ActionScript或null中正则表达式的匹配项或第一个变量匹配项的方法?

Javascript 是否存在只返回ActionScript或null中正则表达式的匹配项或第一个变量匹配项的方法?,javascript,regex,actionscript-3,Javascript,Regex,Actionscript 3,是否有一个方法只返回匹配项,如果没有匹配项则返回null 这可能是大脑冻结,但是否有一种方法只返回匹配项,如果没有,则返回null 例如,如果我只想返回第一个变量,否则返回null: var value:String = "image/png".toLowerCase(); var result:String = value.find(/image/(png|jpg|jpeg|gif)/); if (result=="png") { // do something } 我知道有rep

是否有一个方法只返回匹配项,如果没有匹配项则返回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
它们返回数组等,但我只是在寻找一个返回我的第一个匹配项或null的方法


如果没有这样的函数,我希望有。我多么希望有上帝啊

没有具体的方法可以做到这一点。最接近的方法是
String.match
RegExp.exec
,因为regex没有全局修饰符,所以在这里没有什么区别。使用带有全局修饰符的正则表达式后,您将别无选择,只能使用
RegExp.exec

使用
String.match
RegExp.exec
可以检查结果是否为
null
,如果不是
null
,则提取组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)
,但尽管它在内部工作得更好,但可读性会降低。

这解决了问题,但您是说
exec
是最接近我想要执行的功能吗?您只需要访问组1。使用
String.match
RegExp.exec
,由于regex没有全局修饰符,所以在这里差别不大。使用带有全局修饰符的正则表达式后,您将别无选择,只能使用
RegExp.exec