var pattern = /^0+$/;
我的猜测是:
“查看字符串的开头和结尾,如果开头和结尾有一个或多个零的模式,则返回该模式。”
不过我确定那是错误的,因为当我用这个字符串运行表达式时:
var string = "0000009000000";
出现 null
。
那么它到底在说什么?当我问的时候,JavaScript 是如何考虑字符串的开头、中间和结尾的?
更新#1:感谢您的回复!我想我现在明白了。我的困惑源于我将字符串可视化为具有开头、中间和结尾的事实。像这样:
[开头][中间][结尾]
换句话说,对于上面给定的字符串,以下表达式按我预期的方式工作:
/^0+/;
返回“000000”(字符串开头有一个或多个零的模式)
和
/0+$/
;返回“000000”(字符串末尾有一个或多个零的模式)
更新#2:我对这一点的所有回复都投了赞成票,因为它们都很有帮助,我将答案汇总成一个大问题:
给定以下 JavaScript 代码:
var string = "0000009000000";
var regExp = /^0+$/;
alert(regExp.exec(string));
部分内容如下:
“如果正则表达式中 ^ 修饰符和 $ 修饰符之前的确切字符不是同时位于字符串的第一个位置和字符串的最后一个位置(即,它们不是字符串中唯一的字符),然后返回 null
。否则,返回字符。”
换句话说,假设给定的字符串是六个零“000000”。这会导致匹配,因为完全相同的一组“0”字符位于第一个位置(1st 2nd 3rd 4th 5th 6th)和最后一个位置(1st 2nd 3rd 4th 5th字符串的第 6 个)。
然而,在原始给定的字符串中,有六个零,然后是一个九,再接着是六个零(“0000009000000”)。现在,字符串第一个位置的六个零(1st、2nd、3rd、4th、5th、6th)与字符串最后一个位置的六个零(8th、9th、10th、11th、12th)不完全相同, 13).因此,返回一个 null
。
最佳答案
这是说你的字符串只包含 0...它必须开始,然后有 1 个或多个 0,然后结束。
关于javascript - 你如何阅读这个 JavaScript 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/275625/