匹配和替换取决于javascript中的正则表达式模式

时间:2017-01-23 21:50:47

标签: javascript regex regex-lookarounds

我无法部署工作流程来使用多个正则表达式模式来匹配和替换以下模式的名称。我需要提取姓氏,名字,中间首字母或用空格填充它,并在它们之间放置逗号示例:

在:

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

输出:

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

我使用的程序在名字

上停止

非常感谢任何协助。

谢谢 - 马特

2 个答案:

答案 0 :(得分:2)

如果您确实需要使用正则表达式,(\w+(?:-\w+)?),(\w+)\s(?:([a-zA-Z]{1})\s)?(\w+)将为您提供所需的捕获。

但是,使用像{...}这样的split函数要容易得多。

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

答案 1 :(得分:0)

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