2017-01-23 7 views
0

以下のパターンの名前を一致させて置き換えるために、複数の正規表現パターンを使用するための作業プロセスを展開できませんでした。でjavascriptの正規表現パターンに応じて一致と置き換えを行います

  • 「HILL、ADAM APRN」
  • 「SMITH私は、ミドルネームのイニシャル姓、名を抽出したり、空白でそれを記入し、それらの間の場所をコンマ例する必要があります、JOHN B APRN」
  • "JONES-WILSON、ROBERT APRN"

アウト:

  • "HILL、ADAM、APRN"
  • "SMITH、JOHN、B、APRN"
  • "JONES-WILSON、ROBERT、APRN"

Iがファーストネームで停止使用手順

ご協力いただければ幸いです。

ありがとうございました - マット

+2

は、正規表現は本当に必要なのか?あなたの文字列を分割( '')スペースで分割し、それを後ろのカンマ.join( '、')に戻すと、必要な結果が得られます。 – Daniel

+0

[this 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, ','))); 
関連する問題