正则表达式仅接受带有字母数字的特殊字符

时间:2018-06-21 07:26:07

标签: regex

我创建了以下正则表达式:

^[a-zA-Z0-9 ']{1,24}\r?$

它应该接受字母数字,空格和撇号。输入的字符数必须至少为1个字符,最大为24个字符。但是它也接受仅带有撇号和空格的输入(例如" ' ' ")。我希望只接受一些字母数字字符的撇号和空格。所以下面的测试用例应该通过

通过

Test
Test'My Regex
Test' 123' Regex '

失败

  • ''

1 个答案:

答案 0 :(得分:1)

您可以使用

^(?=.{1,24}$)[a-zA-Z0-9 ']*[A-Za-z][a-zA-Z0-9 ']*$

或者,如果只有一位的字符串已经使它们有效:

^(?=.{1,24}$)[a-zA-Z0-9 ']*[A-Za-z0-9][a-zA-Z0-9 ']*$

请参见regex demo

详细信息

  • ^-字符串的开头
  • (?=.{1,24}$)-整个字符串必须包含1到24个字符
  • [a-zA-Z0-9 ']*-0+个字母数字,空格或'个字符
  • [A-Za-z]-一个字母字符(注意替换为[A-Za-z0-9],也允许只包含数字的字符串)
  • [a-zA-Z0-9 ']*-0+个字母数字,空格或'个字符
  • $-字符串的结尾。