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.或“”或..中不起作用,这不应该被允许。
为什么会在一个名称中被同时使用呢?同样,这应该包括在你的问题中,所以人们艾克:我自己不要把时间浪费在解决不了问题的解决方案上……两个特殊的字符不应该并排出现。我已经写得很清楚了,你可以检查一下