javascript - 为什么 (new RegExp ('[1-9]' )).test ('10' ) 返回 true?

标签 javascript regex

RegEx [1-9] 不应该表示匹配从 1 到 9 的数字,为什么 10 包括 0 返回 true?

最佳答案

/[1-9]/ 正则表达式表示“该字符串包含 19 之间的任何字符。

因为字符串包含 1 它匹配。 0 无关紧要,字符串已经匹配。

如果你想要“字符串由 1 到 9 之间的单个数字组成”那么你想要:

/^[1-9]$/

如果您想要“该字符串仅包含 1 到 9 之间的数字(并且至少包含其中一个)”,那么您需要:

/^[1-9]+$/

关于javascript - 为什么 (new RegExp ('[1-9]' )).test ('10' ) 返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21107874/

相关文章:

javascript - 如果从服务器发送到客户端,HTML 字符串会获得额外的换行符

java - 在字符串中找到一个 6 位数字

python - 如何使用正则表达式删除转义序列(例如\"escaped string\")?

Python正则表达式实现字符串转义

javascript - 为什么我突然无法从 Blogger API 获取内容?

javascript - Expressjs 模块 bodyparser 返回未定义

javascript - 使用 javascript 上传 YouTube 视频

Python 在同一行结合正负匹配

javascript - 我如何使用 jQuery 的 .each() 来替换文本/正则表达式?

javascript - parseFloat 没有给出准确的值