2017-01-23 3 views
0

Мне не удалось развернуть рабочий процесс, чтобы использовать несколько шаблонов регулярных выражений для соответствия и замены следующих шаблонов имен. Мне нужно извлечь фамилию, имя, отчество или заполнить его с белым пространством, и место запятые между ними Примеры:Соответствие и замена в зависимости от шаблона регулярного выражения в javascript

В:

  • «HILL, АДАМ APRN»
  • «СМИТ , John B APRN»
  • "Джонс-Вилсон, Роберт APRN"

Выход:

  • "ХОЛМ, ADAM, APRN"
  • "Смит, Джон, В, APRN"
  • "ДЖОНС-Вилсон, Роберт,, APRN"

процедура я использовал остановился на первое имени

Любая помощь будет очень признательна.

Спасибо - Matt

+2

Является ли регулярное выражение действительно необходимо? Вы можете разделить свои строки с помощью разделенных ('') пробелов, а затем объединить их в ширину запятой .join (','), и вы получите результат, который вам нужен. – Daniel

+0

См. [Этот JSFiddle] (https://jsfiddle.net/r8v4b33n/1/). –

ответ

2

Если вам действительно нужно использовать регулярное выражение, (\w+(?:-\w+)?),(\w+)\s(?:([a-zA-Z]{1})\s)?(\w+) даст вам снимки, которые вам нужны.

Однако, было бы гораздо проще использовать функцию split как ...

var name = "HILL,ADAM APRN"; 
var newName = name.split(/[ ,]/).join(',') 
+0

Как бы добавить пробел, когда средний начальный номер отсутствует? то есть "HILL, ADAM,, APRN" –

0
var str = "HILL,ADAM APRN"; 
var blocks = str.match(/ /g).length; 
var nuStr = (blocks==1 ? (str.replace(/ /, ', ,')) : (str.replace(/ /g, ',')));