为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式在文本中允许撇号

如何使用正则表达式在文本中允许撇号

ITMISS 2021-06-30 17:51:09
我正在使用这个正则表达式来验证文本:    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)?$,即匹配a0 或更多as 和-s的可选序列,后跟a直到字符串末尾。


查看完整回答
反对 回复 2021-07-01
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信