1

有人可以帮我写一个正则表达式与测试函数一起使用,以在字符串列表或具有逗号分隔数字的数字列表中查找准确接收的数字。

例如。我有数字 125 之类的参数和字符串,例如 '12,74,48,125,1253,1' 或者更容易使用的数字列表 12,74,48,125,1253,1 (我可以同时使用两者)我该如何编写正则表达式准确地找到这个数字并返回真或假。

我用过这个,但它没有找到号码是否有 3 或 4 位数字

if(new RegExp('\\b'+number+'\\b').test('12,74,48,125,1253,1')){
alert('true');
}

这个列表也可以只有一个数字,比如“125”,我很少使用正则表达式。提前致谢。

4

4 回答 4

0

如果它更容易使用数字列表 12,74,48,125,1253,1

不要使用正则表达式。只需检查数字是否在数组中。

var nums = [12,74,48,125,1253,1];
if (nums.indexOf(125) >= 0) {
    alert('true');
}
于 2012-05-01T14:14:42.233 回答
0

如果您必须使用正则表达式,只需在字符串上使用search或,例如match

var indexOfMatch = '12,74,48,125,1253,1'.search(/125/) // -1 if not present

或者

var arrayOfMatches = '12,74,48,125,1253,1'.match(/125/) //returns an array of matches

然后您可以只测试返回的索引(如果它不是 -1)或返回的数组(如果它的长度 > 0)来确定是否存在 125。

于 2012-05-01T14:19:01.267 回答
0

我建议使用数组 indexOf方法来解决您的问题。

var list = '12,74,48,125,1253,1';

function isset(num) {
   return list.split(',').indexOf(""+num) === -1 ? false : true;
}
于 2012-05-01T14:19:58.693 回答
-1

为什么它需要是一个正则表达式?如果您正在寻找一个确切的数字,请使用 indexOf:

var str = '12,74,48,125,1253,1';
var ix = str.indexOf('125');
if(ix == -1) /* number not found */;
于 2012-05-01T14:17:20.750 回答