-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 の DOCS から

構文

var array = string.match(regexp);

パラメーター

正規表現

正規表現オブジェクト。非 RegExp オブジェクト obj が渡された場合、new RegExp(obj) を使用して暗黙的に RegExp に変換されます。

説明

正規表現に g フラグが含まれていない場合、regexp.exec(string) と同じ結果を返します。

正規表現に g フラグが含まれている場合、メソッドはすべての一致を含む配列を返します。一致するものがない場合、メソッドは null を返します。

返された配列には追加の入力プロパティがあり、結果としてそれを生成した正規表現が含まれています。さらに、文字列内の一致のゼロベースのインデックスを表す index プロパティがあります。


やりたいこと

true または false の値が必要な場合、本当に必要なのは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;
}

test と not match を使用する方がよい

于 2013-03-22T15:30:40.203 に答える
0

一致したグループ値の配列

于 2013-03-22T15:27:07.457 に答える