更新正则表达式以排除除了空格之外的任何内容

问题描述 投票:0回答:2

我正在使用我的rails应用程序验证名称的格式。我需要更新它,所以它不接受像mike.jones这样的东西

current regex

/([A-Za-z ',.-]+)/

acceptable names

'Baxter',
'Doe de Sour Jr.',
'Smith-Brown',
"Mathias d'Arras",
"d'Arras",
'King, Jr.',
'Cotton III'

invalid names

'Baxter2',
'user@gmail',
'#michael',
'tina.fay'
regex ruby
2个回答
2
投票

当您需要考虑有效名称中间出现的句点时,答案有点复杂。根据你的描述,规则似乎是句号很好,只要它们不会立即后跟字母。这可以通过正则表达式预测完成:

^(?!.*\.\S)[A-Za-z ',.-]+$

但是:ぁzxswい


0
投票

然后你只需要将https://regex101.com/r/LkUl38/2移动到你的正则表达式的末尾(然后逃避它),这样你仍然可以在名字的末尾找到.的人:

Jr.

它应该工作正常。 /([A-Za-z ',-]+\.?)/

如果你有兴趣,有一些Try it online!用于学习正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.