gpt4 book ai didi

javascript - 在 RegEx 中,我只需要在中间允许空格并防止在开头和结尾有空格

转载 作者:行者123 更新时间:2023-11-29 19:04:19 25 4
gpt4 key购买 nike

我有一个要求,其中我有以下要求来验证名称字段:

  1. 不允许使用以下符号:&(¥)*/+}{¿?¡_^~¨¬;:@!"#&\|-'
  2. 不能包含数字
  3. 开头和结尾不能有空格

我使用了以下正则表达式:

^[^\\s0-9&(¥)*/+}\\\\{¿?¡_^~¨¬;:@!#&\"|-]*$

它满足所有条件,但也限制了字符串之间的空格。例如:

它限制格式:“名字姓氏”

我需要允许上述格式。我只需要限制开头和结尾的空格。

最佳答案

我假设它用于某种 RegularExpressionAttribute 验证,而您只想为此使用单一模式。

您已经有了第一个构建 block :

[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]

这匹配除了集合中定义的字符之外的任何字符。它不匹配空格。如果您使用 * 进行量化并用 anchor 包裹,则字符串中的任何位置都不允许有空格。因此,您只需要添加一个可选组(用 *?{x,y} 量化,具体取决于您想要的空格数允许):

^[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+(?:\s[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+)*$
^^^ ^^

如果你还想匹配一个空字符串,用一个可选的非捕获组包装模式:

^(?:[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+(?:\s[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+)*)?$
^^^ ^^

根据需要转义反斜杠。

至于名称中的连字符:允许它与空格放在同一位置可能是合适的:

^(?:[^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+(?:[\s-][^\s0-9&(¥)*/+}\\{¿?¡_^`~¨¬;:@!#&\"|-]+)*)?$
^^^^^

关于javascript - 在 RegEx 中,我只需要在中间允许空格并防止在开头和结尾有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com