为什么两次运行完全相同的正则表达式的结果不同
Why the results from running exactly the same regular expression twice are different?
我想用JavaScript中的正则表达式来匹配URL主机部分。假设我有一个URL
var str = 'www.demo-site.com:1234'
我设计了下面的正则表达式来匹配
var regex = /^www'.demo-site'.com(:'d+)$/gi
正如我所料,regex.test(str)
返回true
。但是,如果我再次运行它,它将返回false。为什么两次运行完全相同的函数的结果不同?
regex.test(str); //returns true
regex.test(str); //returns false
这是因为每次调用test
:时,搜索都从上一个匹配开始
在同一全局正则表达式实例上多次调用的测试将超过前一个匹配。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
相关文章:
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- javascript使用正则表达式得到错误的结果
- 如何在javascript中匹配和提取正则表达式中的部分结果
- 正则表达式,两种方式,不同的结果
- 为什么两次运行完全相同的正则表达式的结果不同
- 将此javascript正则表达式匹配限制为26个字符的结果
- JavaScript 正则表达式返回拆分的结果
- 通过正则表达式检查合法字符,但结果出乎意料
- JS正则表达式结果表达式赋值问题
- 正则表达式 - 替换方法从字符串中删除运算符产生不希望的结果
- 使用简单的正则表达式的奇怪结果
- 在外部作用域中定义的正则表达式在 JavaScript 中会产生不同的结果
- 正则表达式第一个结果($ 1)替换为变量的属性
- JavaScript 中的正则表达式用于存储在数组中的负浮点数结果
- 意外的非贪婪JS正则表达式结果
- PHP正则表达式不工作,返回主题字符串而不是正则表达式结果
- 如果前一个字符是/,如何忽略正则表达式结果(基本上忽略链接href内容)
- 检索具有深入信息的正则表达式结果
- JavaScript 字符串由正则表达式结果拆分,子字符串包括空切片
- JavaScript 不返回预期的正则表达式结果