我只想用任何可能的字符串创建一个正则表达式.
var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
Run Code Online (Sandbox Code Playgroud)
有内置的方法吗?如果没有,人们会用什么?Ruby有RegExp.escape.我觉得我不需要自己编写,那里必须有标准的东西.谢谢!
$ node
> "ababaabab".split(/a{2}/)
[ 'abab', 'bab' ]
> "ababaabab".split(/(a){2}/)
[ 'abab', 'a', 'bab' ]
>
Run Code Online (Sandbox Code Playgroud)
所以,这对我来说没有意义.有人可以解释一下吗?我不明白为什么要'a'出现.
注意:我正在尝试匹配双倍的行结尾(可能在Windows文件中),所以我分裂/(\r?\n){2}/.但是我'\015\n'在我的数组中得到了无关的条目(注释\015 == \r).
为什么会出现这些?
注意:也影响浏览器中的JS引擎,因此这特定于JS而不是节点.
我正在尝试使用逗号或空格分割字符串.逗号可以选择在空格之前和/或之后,空格本身也可以作为分隔符.代码如下所示:
var answers= s.split(/(\s*,\s*)|\s+/);
Run Code Online (Sandbox Code Playgroud)
如果s包含字符串'ab,c',我会得到一个包含五个项目而不是预期三个项目的列表(数组):
0:a,1:未定义,2:b,3:,, 4:c
任何关于我做错的建议都将受到赞赏.
菲利普