作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
从 Node REPL 的事情,
> 'function'.search('io\.')
5
我真的需要它只匹配“io”。而不是“功能”或中间只有“io”的任何东西......
更奇怪的事情:
> 'io'.search('io\.')
-1
> 'ion'.search('io\.')
0
看来我没有转义点字符..?但我用的是“\”……对吗?我在 http://www.regextester.com/ 上都测试过它和 http://regexpal.com/它按照我认为应该的方式工作。
我做错了什么? node.js 中的正则表达式与我习惯的有所不同吗?
EDIT1:在 Google Chrome 浏览器的 javascript 控制台中,我也得到了
'function'.search('io\.')
5
所以它可能是 v8 的东西......对吗?
EDIT2:我从 Firefox 的 javascript 控制台得到了相同的结果,所以这不是 v8 的东西......这里发生了什么?我真的很困惑......
最佳答案
您的正则表达式是正确的,但您也必须对其进行编码才能将其放入字符串中。因此,您的(正确的)正则表达式如下所示:
io\.
但是,反斜杠也是字符串转义字符。为了创建包含该正则表达式的字符串,您必须转义反斜杠:
'io\\.'
按照您的写法,字符串实际上包含 io.
,它正确匹配 function
。
关于javascript - 恼人和奇怪的正则表达式问题 : 'io\.' get's a match on the word 'function' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083330/
我是一名优秀的程序员,十分优秀!