Javascript RegEx模式在中间只有字母数字和哈希(#)符号

时间:2013-07-11 17:35:03

标签: regex

我正在尝试验证正则表达式模式,这样用户只能在中间的任何位置输入带有哈希符号的字母数字,哈希(#)符号不能在开头或结尾。

这就是我所拥有的

/ [^ A-ZA-Z0-9] + $ /克

2 个答案:

答案 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表示空格