-6

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

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;
    }
}
4

2 回答 2

1

来自 MDN 上的文档

句法

var array = string.match(regexp);

参数

正则表达式

一个正则表达式对象。如果传递了一个非正则表达式对象 obj,它会通过使用 new RegExp(obj) 隐式转换为正则表达式。

描述

如果正则表达式不包含 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;
}

它也可以与 match 一起使用,因为可以测试 match 的结果是否为真值。

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

还是用test而不是match比较好

于 2013-03-22T15:30:40.203 回答
0

匹配组值的数组

于 2013-03-22T15:27:07.457 回答