什么.match回归?

时间:2013-03-22 15:25:00

标签: javascript jquery

我想知道.match返回什么 - 匹配的字符还是bool?

function feinNoRepeat(sender, args)
{
    fein = '11-1111111';
    atchThis = fein.replace("-","");
    rptRegex = '\b(\d)\1+\b';
    //would I compare it this way or would I ask if it's true or false?
    if (matchThis.match(rptRegex) = matchThis) 
    {
        args.IsValid = false;
    }
}

2 个答案:

答案 0 :(得分:1)

From the DOCS on MDN

语法

var array = string.match(regexp);

参数

<强>的regexp

正则表达式对象。如果传递了非RegExp对象obj,则使用新的RegExp(obj)将其隐式转换为RegExp。

描述

如果正则表达式不包含g标志,则返回与regexp.exec(string)相同的结果。

如果正则表达式包含g标志,则该方法返回包含所有匹配项的Array。如果没有匹配项,则该方法返回null。

返回的Array有一个额外的输入属性,其中包含生成它的正则表达式。此外,它还有一个index属性,表示字符串中匹配的从零开始的索引。


你想做什么

如果你想要真值或假值,你真正想要的是regularExpression.test(string)

if (rptRegex.test(matchThis)) {  //notice it is the regular expression being acted on, not the string
    args.IsValid = false;
}

它也适用于匹配,因为可以测试匹配结果的真实值。

if (matchThis.match(rptRegex)) {
    args.IsValid = false;
}

使用测试并不匹配

仍然更好

答案 1 :(得分:0)

匹配组值的数组