我创建了以下正则表达式:
^[a-zA-Z0-9 ']{1,24}\r?$
它应该接受字母数字,空格和撇号。输入的字符数必须至少为1个字符,最大为24个字符。但是它也接受仅带有撇号和空格的输入(例如" ' ' "
)。我希望只接受一些字母数字字符的撇号和空格。所以下面的测试用例应该通过
通过
Test
Test'My Regex
Test' 123' Regex '
失败
''
答案 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+个字母数字,空格或'
个字符$
-字符串的结尾。