首页 > 解决方案 > 正则表达式匹配名称前缀

问题描述

我需要匹配任何满足以下条件的字符串的正则表达式条件:

  1. 字符串以前缀 Mr.、Mrs.、Ms.、Dr. 或 Er 开头。

/(?<!prefix )Mr.[a-zA-Z]/到目前为止,我尝试过,但没有奏效。

标签: javascriptregex

解决方案


(Mr|Mrs|Ms|Dr|Er)\.[a-zA-Z]+

解释:

  • (Mr|Mrs|Ms|Dr|Er)- 使用分组和交替来匹配以下任何一项:Mr, Mrs, Ms, Dr,Er

  • \.- 匹配文字.字符

  • [a-zA-Z]+- 匹配一个或多个出现的大写/小写字母。

const regex = /(Mr|Mrs|Ms|Dr|Er)\.[a-zA-Z]+/;

function validate(str){
  console.log(`${str} matches regex? ${regex.test(str)}`)
}

validate("Mr.John")
validate("Mrs.John")
validate("Ms.John")
validate("Dr.John")
validate("Er.John")
validate("Spectric.Spectric")


推荐阅读