我想在包含a ?或a的每个位置拆分一个字符串/.我对正则表达式不太熟悉,所以这给我带来了一些麻烦,因为我不知道在哪里和什么逃脱.它应该是这样的:
let uri = '/some/random/path?param=1234'
let arr = uri.split(/ ?|/ /);
Run Code Online (Sandbox Code Playgroud)
这样的事怎么样?
var uri = '/some/random/path?param=1234';
var split = uri.split(/([?\/])/);
console.log(split);
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/tomharto/0rjw01ch/
虽然每个人都试图证明逃避是必要的,但是让我告诉你一种方法来避免逃避地狱:使用RegExp构造函数表示法,你可以避免逃脱/并在角色类中,你只需要逃避],有时候-.
var uri = '/some/random/path?param=1234'
var arr = uri.split(RegExp("[?/]"));
document.body.innerHTML = "<pre>" + JSON.stringify(arr, 0, 4) + "</pre>"; // with empty
document.body.innerHTML += "<pre>" + JSON.stringify(arr.filter(Boolean), 0, 4) + "</pre>"; // no emptyRun Code Online (Sandbox Code Playgroud)
请注意,您不需要使用/g修饰符String#split(),它是默认行为.
关于JavaScript正则表达式模式转义的更多注意事项:
\ 必须永远逃脱? 必须在角色类之外转义/ 必须以字面正则表达式表示法转义[ 必须在字符类之外进行转义] 必须在字符类中进行转义+,*,(,),^,$,.必须在字符类的外部逃脱,没有一个字符类内进行转义.| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |