我正在尝试验证正则表达式模式,这样用户只能在中间的任何位置输入带有哈希符号的字母数字,哈希(#)符号不能在开头或结尾。
这就是我所拥有的
/ [^ A-ZA-Z0-9] + $ /克
答案 0 :(得分:2)
您可以使用:
/^[a-z0-9]+#[a-z0-9]+$/i
或者如果你想要一个可选的哈希符号:
/^[a-z0-9]+#?[a-z0-9]+$/i
或多个哈希符号:
/^[a-z0-9]+[a-z0-9#]+[a-z0-9]+$/i
仅检查一个字符(如果#是可选的):
2)/^[a-z0-9]+(?:#[a-z0-9]+)?$/i
3)/^[a-z0-9]+(?:[a-z0-9#]+[a-z0-9]+)?$/i
答案 1 :(得分:1)
/^[a-z0-9]+#[a-z0-9]+$/i
应该可以解决问题。
/^[a-z0-9]+(#[a-z0-9]+)?$/i
如果'#'是可选的
[a-z0-9]+
表示一个或多个字母或数字(+
表示一个或多个)
(#[a-z0-9]+)?
表示上面跟着'#',但整个事情要么是零次要么一次(?
表示零或一次)
^
和$
将整个内容锚定在开头和结尾
i
表示不区分大小写
因此,这将匹配一个或多个alphanum,可选地后跟一个'#',然后是一个或多个alphanum。
如果您想要更多“#”字符,可以改用/^[a-z0-9]+([#a-z0-9]+[a-z0-9])?$/i
。这将匹配一个或多个alphanum,可选地后跟一个或多个'#'或alphanum,然后是alphanum。
您还可以将\w
用于字母数字字符。但请注意,这与[a-zA-Z0-9_]
相同,并允许使用_
下划线字符。如果你不想要下划线,你应该坚持使用[a-zA-Z0-9]
(或[a-z0-9]
与i
)
编辑看到你想要空格。尝试这个(它适用于我所有的测试):
/^[a-z0-9]+(([#a-z0-9\s]+)?[a-z0-9])?$/i
注意:它不允许在开头和结尾使用空格,但允许连续的空格。它将允许可选的'#'字符及其中的任意数字。 \s
表示空格