Разбить строку по периоду, но не если пробел после периода - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть строка, подобная следующей, и я хочу разделить имена в массив, используя символ точки в качестве разделителя.К сожалению, некоторые имена также содержат символ точки, который вызывает неправильное разделение.Я не могу изменить символ, используемый для разделения имен.

"John Smith.John Mc. Smith.Jim Smith"

Желаемый вывод

 ["John Smith","John Mc. Smith","Jim Smith"]

Следующее регулярное выражение хорошо работает в редакторе https://regex101.com/r/oK6iB8/32

Ноон не работает в консоли Chrome

"John Smith.John Mc. Smith.Jim Smith".split('\.(?=\S)|:')

https://codepen.io/anon/pen/NogQrQ?editors=1111

Неверный вывод

["John Smith.John Mc. Smith.Jim Smith"]

Почему это работает в редакторе Regex, но нево фрагменте Codepen?

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете использовать этот шаблон регулярных выражений.

\.(?!\s) - . не должно сопровождаться space (отрицательный взгляд)

let str ="John Smith.John Mc. Smith.Jim Smith"

let op = str.split(/\.(?!\s)/g)

console.log(op)

Почему мой код не работал

split('\.(?=\S)|:'), потому что здесь вы даете \.(?=\S)|: как string не как регулярное выражение.

console.log("John Smith.John Mc. Smith.Jim Smith".split(/\.(?=\S)|:/))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...