我正在使用此正则表达式来验证文本:
const regex = /^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/
return text.length > 0 && !reg.test(text);
它允许文本字符包括来自不同语言的特殊字符。
但是在验证中我不允许出现撇号“'”。
有人可以帮我吗?
答案 0 :(得分:2)
由于您的输入内容可能包含大括号的单引号,因此您需要将其添加到所有可能需要匹配它们的字符类中:
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的可选序列和-
,后跟a
,直到字符串结尾。
答案 1 :(得分:0)
通过添加解决它
ios 使用 ‘’
安卓使用'
在 React Native 中工作!