从文本框测试空间输入

时间:2013-09-03 06:23:38

标签: javascript html

我有一个文本框。我有这个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"} 
是允许的。不允许
 {"   "}
。当我删除条件时,它允许空格。我怎么能这样做?

3 个答案:

答案 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)

Working Sample

<强> HTML

<input>

<强>的Javascript

$("input").on("keydown", function (e) {
    return e.which !== 32;
});

这将允许所有字母,字母,特殊字符,除了空格..