应该是正则表达式什么用于检查值是(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. 正则表达式检查循环中的[a-z]范围
- 4. JavaScript网址正则表达式来检查正则表达式与URL
- 5. Javascript正则表达式检查模式
- 6. 正则表达式或OR两个范围正则表达式
- 7. 正则表达式检查范围内的字符不重复
- 8. 使用正则表达式检查数字范围
- 9. 正则表达式来验证几个值的范围(.NET)
- 10. 在JavaScript中匹配数字范围的正则表达式
- 11. 正则表达式来检查标题
- 12. 正则表达式来检查符号
- 13. 正则表达式来检查IP
- 14. JavaScript中的正则表达式来检查时间与日期
- 15. 货币范围正则表达式
- 16. 正则表达式数字范围prasing
- 17. 正则表达式 - 可选范围
- 18. 正则表达式的数字范围
- 19. 正则表达式 - 范围(2-16)?
- 20. Graphite storage-aggregation.conf正则表达式范围
- 21. 正则表达式匹配IP范围?
- 22. 组正则表达式超出范围
- 23. Java的正则表达式范围
- 24. 正则表达式的具体范围
- 25. 正则表达式的贪婪范围
- 26. perl正则表达式无效范围
- 27. 如何在JavaScript中使用正则表达式来指定此范围?
- 28. JavaScript Unicode正则表达式 - 字符类中的范围出错
- 29. python中的数值范围的正则表达式
- 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