按句点拆分字符串,但如果是句点后的空格则不拆分

gri*_*mus 3 javascript regex

我有一个像下面这样的字符串,并希望使用句点字符作为分隔符将名称拆分为数组.遗憾的是,有些名称还包含导致错误拆分的句点字符.我无法修改用于分隔名称的字符.

"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代码段中没有?

Cod*_*iac 7

您可以使用此正则表达式模式.

\.(?!\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)