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