gpt4 book ai didi

Javascript使用正则表达式匹配特定数字

转载 作者:行者123 更新时间:2023-11-30 07:18:48 25 4
gpt4 key购买 nike

我使用 javascript 来检测特定的击键,在编写方法时我想我会尝试正则表达式和 test() 方法并想出:

if (/8|9|37|38|46|47|48|49|50|51|52|53|54|55|56|57|96|97|98|99|100|101|102|103|104|105|110/.test(num)) {
// do something if there's a match
}

这似乎并没有 100% 有效,因为某些值似乎通过了正则表达式测试,例如 83。我已经继续前进,但我仍然很好奇为什么这不起作用。

最佳答案

这是完全错误的做法。

要回答这个问题,正则表达式匹配您的字符串的一部分。字符串 83 通过匹配 8 传递。
您需要通过将 ^( 放在开头并将 )$ 放在结尾来锚定您的正则表达式。

执行此操作的正确方法是创建一个有效数字数组,然后使用 parseInt 进行比较。

例如:

var validNumbers = [ 8, 9, 37, 38, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 110 ];

if (validNumbers.indexOf(parseInt(num, 10)) >=0 ) {
//Match
}

你需要一个用于 IE 的 indexOf 函数:

if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(needle) {
for(var i = 0; i < this.length; i++) {
if(this[i] === needle) {
return i;
}
}
return -1;
};
}

关于Javascript使用正则表达式匹配特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com