数字正则表达式的Javascript搜索字符串可能吗?

时间:2012-10-24 05:03:46

标签: javascript jquery string

我有一个像

这样的字符串
  

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

我想知道如果:22:在所述字符串中。但有没有一种方法可以搜索上面的字符串,就像我想用javascript匹配它一样,如果存在,它是否涉及正则表达式魔法还是还有其他东西?无论哪种方式都不确定如何做,如果涉及正则表达式则更多。

2 个答案:

答案 0 :(得分: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

修改

以上都使用正则表达式,因此十进制ponit(。)将代表任何字符,因此“4.1”将匹配“461”或甚至“4z1”,因此最好使用基于{{1的方法以防万一(除非你想要“。”代表任何角色),所以根据Blender的评论:

String.prototype.indexOf

答案 1 :(得分:2)

像这样:

aStr = ':21::22::24::99:';
if(aStr.indexOf(':22:') != -1){
    //':22:' exists in aStr
}
else{
    //it doesn't
}