应该是正则表达式什么用于检查值是(1000〜20000)的范围正则表达式中JavaScript来检查值在范围
-5
A
回答
0
^(20000 | [1] {0,1} [\ d] { 4})$
^和$确保将整个输入字符串作为一个整体进行测试。否则,我们最终可能会在部分匹配上产生误判,如6200007为真。
(xxx | yyy)表示“匹配xxx或yyy”。这是必要的,因为很容易说“匹配4位数字”,基本上是1000-9999。也很容易说,无论是否是首发1.但是由于你的最大值是20000,我不能用正则表达式来说“开始1或2”,因为开始的“2”必须不允许任何跟随除了0之外的数字。
因此,字符串必须完美匹配20000,或者任何4个数字加上可能的1作为前缀。
测试:
/^(20000|[1]{0,1}[\d]{4})$/.test('20000')
1
正则表达式是这个错误的工具。举个例子,假设我们想检查值在50到100的范围内。用正则表达式,你不能用数字来思考,相反,你不得不考虑哪些字符串是该范围的有效表示。
所以,我们注意到字符串方面的想法是,第一位必须是5
,6
,7
,8
或除非我们有3位应该是一个1
9
。
让事情简单化和处理字符串100
作为给我们的正则表达式的特殊情况:
100|[5-9][0-9]
现在,让我们来看看另一个例子。比方说,你想在1000和9999之间,我们按照上面的思路号码这将使我们:
[1-9][0-9][0-9][0-9]
可以简化为:
[1-9]\d{3}
然后,您可以考虑范围10000至20000为一个特殊的情况,为它写一个正则表达式,然后使用|
运算符将它与上面的正则表达式结合起来。
我会留下实际的解决方案供您解决。
不过,regex是这个错误的工具。这很容易做到:
x >= 1000 && x <= 20000
而且它比正则表达式更容易理解。更容易理解=更少的错误。
1
请找到下面的代码:
function numInRange(numberStr) {
var res = numberStr.search(/(^[1-9][0-9]{3}$)|(^[1][0-9]{4}$)|(^[2][0]{4})/);
return res == 0;
}
numInRange("999");
numInRange("1000");
numInRange("2000");
numInRange("9999");
numInRange("10000");
numInRange("20000");
numInRange("20001");
相关问题
- 1. 正则表达式来检查JavaScript
- 2. 检查数值范围的正则表达式
- 3. JavaScript,正则表达式 - 在范围中包装颜色值
- 4. 正则表达式来跨越-9.99范围为0在javascript
- 5. Ruby中非ASCII字符范围检查的正则表达式
- 6. 正则表达式检查循环中的[a-z]范围
- 7. JavaScript网址正则表达式来检查正则表达式与URL
- 8. 正则表达式来检查公式
- 9. Javascript正则表达式检查模式
- 10. 的Javascript正则表达式或其他方法来检查值
- 11. 正则表达式或OR两个范围正则表达式
- 12. 正则表达式匹配表达式货币数值范围
- 13. 正则表达式来检查是否在2个范围上找到IP
- 14. 使用正则表达式进行范围检查?
- 15. 正则表达式检查范围内的字符不重复
- 16. 使用正则表达式检查数字范围
- 17. 正则表达式来验证几个值的范围(.NET)
- 18. 的Javascript正则表达式的数值范围
- 19. prometheus规则:检查范围内的表达式值
- 20. 在JavaScript中匹配数字范围的正则表达式
- 21. Javascript正则表达式在字符类中的无效范围
- 22. 正则表达式来检查IP
- 23. 正则表达式来检查'\'
- 24. 正则表达式来检查进入
- 25. 正则表达式来检查符号
- 26. 正则表达式来检查标题
- 27. 正则表达式来检查0,00,000,0000,00.00
- 28. 正则表达式来检查空格
- 29. 正则表达式数值范围在Perl中失败
- 30. JavaScript中的正则表达式来检查时间与日期
正则表达式矫枉过正。不要对所有东西都使用正则表达式。上帝给了我们[比较操作员](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)。 – Tushar
当问问题显示你的努力时,不要期望通过倾销需求来获得代码。 – Tushar
'var re,j,a = [];对于(j = 1000; j <= 20000; j ++){a.push(j);} re = new RegExp(“^(”+ a.join(“|”)+“)$”);'(No我不认真,它会起作用吗?是的,你应该这样做吗?不。) – nnnnnn