我一直在尝试使用 JavaScript 来获得一个不允许符号但允许连字符和下划线的正则表达式,但它不起作用,这是我尝试过的:
function checkUsername(username)
{
username_lbl = document.getElementById('<%= username_lbl.ClientID %>');
register_btn = document.getElementById('<%= register_btn.ClientID %>');
if (username.match("?[!@#$%^&*()+=[{]};:<>|./?.]"))
{
username_lbl.innerHTML = 'Cannot contain symbols';
register_btn.disabled = true;
username_lbl.style.color = "red";
}
}
有谁明白我做错了什么?
最佳答案
因为许多符号(例如 ?, [,] )被用作正则表达式符号。你需要逃避他们,或者这样做:
username.match("[^\\w-_]");
[^] 表示不匹配字符集。
\w 表示单词字符 [a-zA-Z0-9]
EdBallot 编辑 :修正错字正则表达式(原为
[^\\w-_]
,改为 [^\w\-_]
)作者编辑 :它应该是
"[^\\w-_]"
因为它是双引号的并且应该被转义,或者你可以单引号或者让它成为正则表达式username.match(/[^\w-_]/)
关于javascript - 正则表达式不允许除连字符和下划线以外的符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31371850/