Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正数范围18-65的正则表达式是什么?它只能接受两位数字_Javascript_Regex_Vue.js - Fatal编程技术网

Javascript 正数范围18-65的正则表达式是什么?它只能接受两位数字

Javascript 正数范围18-65的正则表达式是什么?它只能接受两位数字,javascript,regex,vue.js,Javascript,Regex,Vue.js,我想要一个范围在18-65之间的正则表达式 我使用了这个->1[89]|[2-5][0-9]| 6[0-5],但它工作不正常,并且接受两个以上的数字。请建议 我想输入年龄在18-65岁之间的信息。你可以试试 常量正则表达式=/^1[8-9]|[2-5][0-9]| 6[0-5]$/ console.logregex.test17//false console.logregex.test18//true console.logregex.test65//true console.logregex

我想要一个范围在18-65之间的正则表达式

我使用了这个->1[89]|[2-5][0-9]| 6[0-5],但它工作不正常,并且接受两个以上的数字。请建议

我想输入年龄在18-65岁之间的信息。

你可以试试

常量正则表达式=/^1[8-9]|[2-5][0-9]| 6[0-5]$/ console.logregex.test17//false console.logregex.test18//true console.logregex.test65//true
console.logregex.test66//false尽管根据AZ_uuu注释提到的条件是好的,以防您想要使用regex,然后尝试以下内容

^1[8-9]$|^[2-5][0-9]$|^6[0-5]$

很接近,表达式的问题是缺少锚定标记,即正则表达式引擎应该只匹配给定的字符串,如果之前或之后出现任何其他内容,则使其失败

稍微更改您的表达式,如下:^1[89]|[2-5][0-9]| 6[0-5]$示例。前面的“^”确保匹配从字符串的最开头开始,而末尾的$确保匹配在字符串的末尾停止。这可以确保提供的字符串与所需的模式整体匹配,因此19个匹配,而119个不匹配


或者,正如最有可能被提议的那样,它将更容易被分割,然后使用通常的数学运算符。

如果你真的想用正则表达式来做这件事,你必须使用^和$。这样,18到65之间的数字将是唯一可接受的输入,而不是其他字符:

^(1[89]|[2-5][0-9]|6[0-5])$

很多答案…也许可以查看这个方便的网站,以防将来需要其他范围

试试这个:

(^1[8-9]$)|(^[2-5][0-9]$)|(^6[0-5]$)

regex在这方面做得太过分了。num>=18&&num regex不是此作业的正确工具。它可以用来检查一个字符串是否看起来像一个数字,即只包含数字,但这是它的幂结束的地方。然后解析字符串,得到一个数字,并将该数字与限制值进行比较。11-17也通过,20、30、40失败,50@CinCout,谢谢你让我知道,现在更改了。这与1800000匹配。这可以工作,但接受两位数以上。@RoshanYadav:如果答案对你有帮助,请将其标记为其他匹配项abc*$^189245%/:编辑示例以匹配整个单词。
(^1[8-9]$)|(^[2-5][0-9]$)|(^6[0-5]$)