我正在使用这个正则表达式来验证文本: const regex = /^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/return text.length > 0 && !reg.test(text);它允许包含来自不同语言的特殊字符的文本字符。但是我有问题在此验证中允许撇号“'”。有人可以帮助我吗?
2 回答

慕容708150
TA贡献1831条经验 获得超4个赞
由于您的输入可能包含单引号,您需要将它们添加到所有可能需要匹配它们的字符类中:
const reg = /^[\u00C0-\u017Fa-zA-Z'’‘’][\u00C0-\u017Fa-zA-Z’‘’' -]+[\u00C0-\u017Fa-zA-Z'’‘’]?$/
注意我还放置-
在第二个字符类的末尾,以便它始终可以被解析为文字连字符。
如果您的输入字符串可以有任何不在开始/结束处的连字符,并且字符串长度可以是 1 个字符,请使用
const reg = /^[\u00C0-\u017Fa-zA-Z'’‘’](?:[\u00C0-\u017Fa-zA-Z’‘’' -]*[\u00C0-\u017Fa-zA-Z'’‘’])?$/
也就是说,您有一个^a[a-]+a?$
类似方案的正则表达式,但我建议^a(?:[a-]*a)?$
,即匹配a
0 或更多a
s 和-
s的可选序列,后跟a
直到字符串末尾。
添加回答
举报
0/150
提交
取消