字母数字,短划线和下划线,但没有空格正则expression式检查Javascript
试图检查正则expression式的input。
该字段只能使用字母数字字符,破折号和下划线,不能有空格。
但是,下面的代码允许空格。
我错过了什么?
var regexp = /^[a-zA-Z0-9\-\_]$/; var check = "checkme"; if (check.search(regexp) == -1) { alert('invalid'); } else { alert('valid'); }
提前致谢。
但是,下面的代码允许空格。
不,不。 但是,它只会匹配长度为1的input。对于长度大于或等于1的input,您需要在字符类之后加上+
:
var regexp = /^[a-zA-Z0-9-_]+$/; var check = "checkme"; if (check.search(regexp) == -1) { alert('invalid'); } else { alert('valid'); }
请注意, -
(在这个例子中)和_
都不需要转义。
如果您只对布尔值感兴趣,则不应使用String.match,而应使用 RegExp.prototype.test(即/abc/.test("abcd")
)而不是String.search()。 你也需要像Andy E的回答中所说的那样重复你的angular色课堂:
var regexp = /^[a-zA-Z0-9-_]+$/;
得到了愚蠢的错误。 所以在这里发帖,如果有人觉得有用
-
-\._
– 表示连字符,点和下划线 -
\.-_
– 表示从点到下划线的所有符号
不要逃避下划线。 可能会造成一些w </s>。