我想检查文本框输入是否有效(只允许使用字母,数字和下划线。没有空格或破折号)。我目前有这个,但空白&破折号似乎过去了。
function validText(field)
{
var re = /[a-zA-Z0-9\-\_]$/
if (field.value.search(re) == -1)
{
alert ("Invalid Text");
return false;
}
}
有效输入类似于
'Valid_Input123
'
无效
'Invalid-Input !'
答案 0 :(得分:22)
\w
是一个方便的正则表达式转义序列,涵盖字母,数字和下划线字符^
)和结束($
)处锚定有效性测试来测试整个字符串的有效字符test
方法比字符串search
方法+
量词总结(代码中)
var re = /^\w+$/;
if (!re.test(field.value)) {
alert('Invalid Text');
return false;
}
return true;
或者,您可以使用
测试任何无效字符/\W/.test(field.value)
\W
是除字母,数字或下划线字符以外的任何字符。
然后,您可能还需要添加长度检查以使空字符串无效,例如
if (/\W/.test(field.value) || field.value.length === 0)
答案 1 :(得分:8)
您只是测试文字结束($
)是否包含字符类中的一个字符。您还明确允许破折号(\-
)。如果您不想这样,请将其删除。
锚定表达式(^
,$
),添加量词(+
)和.test
字符串是否只包含这些字符:
var re = /^[a-zA-Z0-9_]+$/; // or /^\w+$/ as mentioned
if (!re.test(field.value)) {
}
答案 2 :(得分:2)
答案 3 :(得分:2)
^
test
更易于使用它应该是这样的:
if (!/^[a-z0-9_]+$/i.test(field.value)) {
//
}