0

私は次のような文字列を持っています

:21 :: 22 :: 24 :: 99:

そして、私はその文字列にあるかどうかを見つけたいと思い:22:ます。しかし、上記のような文字列を検索して、javascriptと一致させたいものを探す方法はありますか?ある場合は、正規表現の魔法が含まれていますか、それとも他に何かありますか?いずれにせよ、それを行う方法がわからない場合は、正規表現が関係している場合はさらにそうです。

4

2 に答える 2

2

必要な正規表現を作成できます。

function findNumberInString(num, s) {
    var re = new RegExp(':' + num + ':');
    return re.test(s);
}

var s = ':21::22::24::99';
var n = '22';

findNumberInString(n, s);  // true

または単に一致を使用します(テストは私にとってよりクリーンですが)

!!s.match(':' + n + ':');  // true

編集

上記はどちらも正規表現を使用しているため、10進数のポイント(。)は任意の文字を表すようになります。したがって、「4.1」は「461」または「4z1」に一致するため、念のために基づいた方法を使用することをString.prototype.indexOfお勧めします(「。」は任意の文字を表したい)、Blenderのコメントによると:

function findNumberInString(num, s) {
    return s.indexOf(':' + num + ':') != -1;
}
于 2012-10-24T05:07:29.850 に答える
2

このような:

aStr = ':21::22::24::99:';
if(aStr.indexOf(':22:') != -1){
    //':22:' exists in aStr
}
else{
    //it doesn't
}
于 2012-10-24T05:09:07.420 に答える