与理解Javascript正则表达式冲突
Conflict with understanding a Javascript regular expression
我正在使用一个Javascript正则表达式,但这与我对它如何工作的理解相冲突。
表达式如下:/^[0-9]+$/
所以,如果我测试这个正则表达式,比如说一个文本框的值,我所理解的是,它将检查值是否至少以一个数字开始,并以至少一个数字结束。然而,实际情况是,只有当整个值为数字时,测试才会成功。如果我在两者之间放一个字母,我知道这应该使测试成功,后者是失败的。
有谁能给我解释一下吗?谢谢。是,它表示从开始到结束的一个或多个数字的序列。
^[0-9].+[0-9]$
会让你明白它在做什么
你的表达式/^[0-9]+$/
说…
-
^
表示"从字符串的开头开始" -
[0-9]
表示"匹配字符串必须包含一个数字" -
+
说,"数字可以重复任何次数,但必须至少出现一次" -
$
说,"字符串必须结束"
由于您没有指定中间可以有字符或任何东西,因此您的regex将无法匹配它。如果你想要"以数字开始,以数字结束",请尝试…
/^[0-9](.*[0-9])?$/
显示
-
^
开始于字符串 的开头 -
(
启动一个组-但现在忽略这个…稍后会变得明显 -
[0-9]
后面跟着一个数字 -
.
后面跟着任意字符 -
*
,让之前指定的"任意字符"立即重复0次或多次 -
[0-9]
后面跟着一个数字 -
)?
,但允许"任何后跟数字的字符"存在或不存在。这允许我们只有一个数字作为匹配字符串。 - $和结束字符串
或者你可以使用/^[0-9]([0-9a-zA-Z]*[0-9])?$/
如果你想限制数字和字母
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用正则表达式捕获“”并分割成阵列
- javascript中字符串上的多个正则表达式替换冲突
- 与理解Javascript正则表达式冲突