我有一个像下面这样的字符串,并希望使用句点字符作为分隔符将名称拆分为数组.遗憾的是,有些名称还包含导致错误拆分的句点字符.我无法修改用于分隔名称的字符.
"John Smith.John Mc. Smith.Jim Smith"
Run Code Online (Sandbox Code Playgroud)
期望的输出
["John Smith","John Mc. Smith","Jim Smith"]
Run Code Online (Sandbox Code Playgroud)
以下正则表达式在编辑器https://regex101.com/r/oK6iB8/32中运行良好
但它在Chrome控制台中无效
"John Smith.John Mc. Smith.Jim Smith".split('\.(?=\S)|:')
Run Code Online (Sandbox Code Playgroud)
https://codepen.io/anon/pen/NogQrQ?editors=1111
输出不正确
["John Smith.John Mc. Smith.Jim Smith"]
Run Code Online (Sandbox Code Playgroud)
为什么这在Regex编辑器中有效但在Codepen代码段中没有?
您可以使用此正则表达式模式.
\.(?!\s)- .不应该跟着space(负向前瞻)
let str ="John Smith.John Mc. Smith.Jim Smith"
let op = str.split(/\.(?!\s)/g)
console.log(op)Run Code Online (Sandbox Code Playgroud)
为什么我的代码不起作用
split('\.(?=\S)|:')因为在这里你给\.(?=\S)|:的string不是正则表达式.
console.log("John Smith.John Mc. Smith.Jim Smith".split(/\.(?=\S)|:/))Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |