【问题标题】:Match and replace depending on the regex pattern in javascript根据 javascript 中的正则表达式模式匹配和替换
【发布时间】:2017-01-23 21:50:47
【问题描述】:

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

在:

  • “希尔,亚当·阿普恩”
  • “史密斯,约翰 B APRN”
  • “JONES-WILSON,ROBERT APRN”

输出:

  • "希尔,亚当,,APRN"
  • “史密斯,约翰,B,APRN”
  • “JONES-WILSON,ROBERT, ,APRN”

我使用的程序在名字上停止

任何帮助将不胜感激。

谢谢你 - 马特

【问题讨论】:

  • 正则表达式真的有必要吗?你可以用 split(' ') 空格分割你的字符串,然后将它加入宽度逗号 .join(',') ,你会得到你需要的结果。

标签: javascript regex regex-lookarounds


【解决方案1】:

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

但是,使用split 函数会更容易...

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

【讨论】:

  • 当中间名不存在时如何添加空格?即“HILL,ADAM, ,APRN”
【解决方案2】:
var str = "HILL,ADAM APRN";
var blocks = str.match(/ /g).length;
var nuStr = (blocks==1 ? (str.replace(/ /, ', ,')) : (str.replace(/ /g, ',')));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多