2017-01-23 46 views
0

我還沒有能夠部署工作進程來使用多個正則表達式模式來匹配和替換以下名稱模式。我需要提取的姓氏,名字,中間初始或以空格填滿它,例如它們之間發生逗號:匹配和替換取決於JavaScript中的正則表達式模式

在:

  • 「HILL,ADAM APRN」
  • 「SMITH ,JOHN乙APRN」
  • 「JONES-WILSON,ROBERT APRN」

輸出:

  • 「HILL,ADAM,APRN」
  • 「SMITH,JOHN,B,APRN」
  • 「JONES-WILSON,ROBERT,APRN」

我用停止在第一名稱的過程

任何援助將不勝感激。

謝謝 - 馬特

+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, ',')));