如何只允许一个连字符( - ),只允许一个空格(),正则表达式中只有一个撇号(')

时间:2013-04-05 06:29:29

标签: c# javascript regex

我有一个文本框,我在其中获取用户的姓氏。如何只允许一个连字符( - ),只允许一个空格(),正则表达式中只有一个撇号(')

2 个答案:

答案 0 :(得分:1)

我不确定你需要一个正则表达式(除非你特别需要连字符,空格和撇号位于你未指定的字符串中的特定位置)。

只需按字符逐个字符串,然后计算连字符,空格和撇号。

正则表达式适用于匹配字符模式,并且可以非常强大,但恕我直言,在某些情况下,它们不仅过度,而且可能只是错误的工具。

答案 1 :(得分:1)

您可以为要避免的3个字符中的每一个使用negative lookahead

^(?!.*-.*-.*)(?!.*'.*'.*)(?!.*\s.*\s.*)[a-zA-Z- ']+$