我有一个字符串
:21::22::24::99:
我想找到说是否:22:
在所述字符串中。但是有没有一种方法可以像上面那样搜索一个字符串,以便我想将它与 javascript 匹配,如果有,它是否涉及正则表达式魔术或者还有其他东西?无论哪种方式都不确定该怎么做,如果涉及正则表达式则更是如此。
我有一个字符串
:21::22::24::99:
我想找到说是否:22:
在所述字符串中。但是有没有一种方法可以像上面那样搜索一个字符串,以便我想将它与 javascript 匹配,如果有,它是否涉及正则表达式魔术或者还有其他东西?无论哪种方式都不确定该怎么做,如果涉及正则表达式则更是如此。
您可以构建所需的正则表达式:
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
以上都使用正则表达式,所以小数点(.)会来代表任何字符,所以“4.1”会匹配“461”甚至“4z1”,所以最好使用基于String.prototype.indexOf
以防万一的方法(除非你想要“。”代表任何字符),所以根据 Blender 的评论:
function findNumberInString(num, s) {
return s.indexOf(':' + num + ':') != -1;
}
像这样:
aStr = ':21::22::24::99:';
if(aStr.indexOf(':22:') != -1){
//':22:' exists in aStr
}
else{
//it doesn't
}