首页 > 解决方案 > 需要用Javascript编写正则表达式

问题描述

需要在 javascript 中在有约束的字段上编写正则表达式 -

名称最长可达 80 个字符。它必须以单词字符开头,并且必须以单词字符或''结尾。名称可能包含单词字符或“.”、“-”、“”。

例子 -

允许的字符串 -

abc.'
abc-'.'
ab-.''-a

不允许的字符串 -

rish a
rish.-

到目前为止我已经尝试过:

!/^[A-Za-z.-'']{1,80}$/.test(Name)

标签: javascriptregex

解决方案


我想,你正在寻找这样的东西:

^(?=[A-Za-z])[A-Za-z\.\-']{0,79}[A-Za-z']$

解释:

^(?=[A-Za-z]):检查字符串是否以单词字符开头。这是一个前瞻断言,因此它不会参与比赛。模式的其余部分仍必须至少占 1 个字符,最多 80 个字符。

[A-Za-z\.\-']{0,79}:第一个和中间字符,因此最多 79 个字符。最后一个字符强制执行最少一个。

[A-Za-z']$: 以字母或撇号结尾。

可在此处测试:https ://regex101.com/r/AOQojT/1


推荐阅读