Javascript 创建用于验证名称的有效正则表达式
我想在我的Javascript 创建用于验证名称的有效正则表达式,javascript,regex,Javascript,Regex,我想在我的react native应用程序中验证名称,我需要 regex用于验证名称 有效姓名:约翰博士 圣彼得大教堂 无效名称:Dr。。约翰 圣。。彼得斯的 两个特殊字符不能并排出现,只能是“和”。是允许的。此外,名称不应以这些特殊字符开头,但可以以字符结尾。不带 下面是我正在使用的regex,但它不需要“和”。并排 /[!0-9@#$%^&*()_+\-=\[\]{};':"\\|,<>\/?]/ /[!0-9@\\$%^&*()\+\-=\[\]{};:“\\\\\,
react native
应用程序中验证名称,我需要
regex
用于验证名称
有效姓名:约翰博士
圣彼得大教堂
无效名称:Dr。。约翰
圣。。彼得斯的
两个特殊字符不能并排出现,只能是“和”。是允许的。此外,名称不应以这些特殊字符开头,但可以以字符结尾。不带 下面是我正在使用的
regex
,但它不需要“和”。并排
/[!0-9@#$%^&*()_+\-=\[\]{};':"\\|,<>\/?]/
/[!0-9@\\$%^&*()\+\-=\[\]{};:“\\\\\,\/?]/
[a-zA-Z]+\.?\s?'?(?!$)
应该可以做到这一点。它在JavaScript中运行良好
我没有花太多时间尽可能提高效率,所以可能有更好的方法来实现这一点
祝你好运
[编辑]
这在很大程度上应该是可行的:[a-zA-Z]+(\.|')?[a-zA-Z]+(\.|')?
这就是我测试的对象:John St.Pet.er博士的
匹配:John St.博士
和Pet.er'
John St..Peter's'匹配:Dr.
和John St.
和Peter'
Anthony
匹配:Anthony
Timbo J.Fadds
匹配:Timbo J.Fadds
Sally-Esquire
匹配:Sally-Esquire
只有在测试包含大量“非法”字符的字符串时,才会真正出错
无论如何,我不会在这方面投入更多的时间,除非你明确说明输入可以是什么,输出需要是什么
[编辑]
[^(\.|')(\.|')]+(\.|')?
可能有效…我建议尝试一下,希望对您有用:
([A-z])+(.?[A-zA-z])*('?[A-zA-z])*
正则表达式应该如下所示:
(!(.*([^a-zA-Z\.\.\s])|(\.{2,})|('{2,}}.\s{2,})))
您可以在此分叉并添加更多测试用例:
你想在姓名之间加空格吗?是的,空格是有效的。这些是企业的名称吗?对于exmaple,是,比如说,Joey的
潜在输入和/或有效输出吗?请更具体地说明什么可以输入,什么有效输出是否。这些是人名,但我们想在ValidationName中加上“和”。有效我会试着让你知道这是否有效。无论如何,谢谢!@ParasWatts NP!如果有效,一定要投票支持它;)我试过了,但它在case.或“”或..中不起作用,这不应该被允许。
为什么会在一个名称中被同时使用呢?同样,这应该包括在你的问题中,所以人们艾克:我自己不要把时间浪费在解决不了问题的解决方案上……两个特殊的字符不应该并排出现。我已经写得很清楚了,你可以检查一下