我有一个文本框。我有这个JS,不允许用户输入特殊字符或空格。
var reg = /^[0-9a-zA-Z]+$/;
if(reg.test(DivisionName) == false) {
alert('Please enter Circle Name without special characters.');
return false;
}
else{
window.location.href="addCircles.jsp?DivisionName="+DivisionName+"&cancel=";
}
现在,我想允许用户输入特殊字符,但不仅仅是空格。例如,
{"Stack OverFlow","$$ any"}是允许的。不允许
{" "}。当我删除条件时,它允许空格。我怎么能这样做?
答案 0 :(得分:1)
为什么不在输入字符串上使用indexOf方法:
function CheckForWhiteSpace(DivisionName) {
return DivisionName.indexOf(' ') >= 0;
}
或者您可以在简单的RegularExpression上使用测试方法:
function RegWhiteSpace(s) {
return /\s/g.test(s);
}
这也会检查其他空白字符,例如Tab。
您应该编辑您的问题,因为它没有提供有关您的要求的正确信息。
这就是编写健壮且可维护的代码。如果用户输入仅包含空格
但是,它可能不适合所有情况!
$.trim($(DivisionName)) === ""
演示here
答案 1 :(得分:1)
也许您可以举例说明哪些输入有效,哪些输入无效? 这样我们可以帮助你使用正则表达式。
例如:
var tests = [
'', // bad
' ', // bad
' foo', // bad
'foo ', // bad
'foo', // good
'foo bar' // good
]
var regex = /^[0-9a-zA-Z!@#$%^&*]+(\s[0-9a-zA-Z!@#$%^&*]+)*$/
for (var i = 0; i < tests.length; i++){
console.log('"' + tests[i] + '"=' + regex.test(tests[i]))
}
给出:
""=false
" "=false
" foo"=false
"foo "=false
"foo"=true
"foo bar"=true
此处示例:jsFiddle
答案 2 :(得分:0)
<强> HTML 强>
<input>
<强>的Javascript 强>
$("input").on("keydown", function (e) {
return e.which !== 32;
});
这将允许所有字母,字母,特殊字符,除了空格..