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

时间:2019-06-14 08:41:41

标签: javascript regex react-native

我正在使用此正则表达式来验证文本:

    const regex = /^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/

return text.length > 0 && !reg.test(text);

它允许文本字符包括来自不同语言的特殊字符。
但是在验证中我不允许出现撇号“'”。
有人可以帮我吗?

2 个答案:

答案 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 中工作!