javascript - 正则表达式匹配名称前缀
问题描述
我需要匹配任何满足以下条件的字符串的正则表达式条件:
- 字符串以前缀 Mr.、Mrs.、Ms.、Dr. 或 Er 开头。
/(?<!prefix )Mr.[a-zA-Z]/
到目前为止,我尝试过,但没有奏效。
解决方案
(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")
推荐阅读
- python - python中出现错误时如何运行函数
- hibernate - 我可以在调用返回结果集但也更新行的存储过程的方法上使用@Transactional(readOnly = true) 吗?
- html - 如何使用 Bootstrap 5 使导航栏背景颜色宽度大小与导航栏内容对齐
- exchange-server - 内容问题将文件夹移动到其他驱动器
- vue.js - 想安装 vue 3,现在没有任何效果
- python - Pandas 读取 sharepoint excel 文件:XLRDError
- python - 具有多个蓝图路由文件的 Flask 应用程序
- javascript - e 是递归处理函数的未定义的正确语法
- reactjs - 无法使用 setState 函数更新 Zusand 状态
- reactjs - 如何使用 react-datetime 选择器仅将日期传递给数据库(不传递时间)