我有这些脚本......
Name: <input type="text" id="inputName" onblur="verifyName(this.value)">
<script type="text/javascript">
function verifyName(nameInput)
{
if(nameInput=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
}
</script>
如果用户不想在文本框中输入他/她的名字,则会显示错误。
如果用户懒惰并且他/她将输入“”(一个或多个空格)作为名称怎么办?这可以被JavaScript接受。它将在if
条件下返回false。
但我希望用户不要只输入空格。有没有办法做到这一点?
注意:输入的任意数量的空格(没有任何字母)都是无效的。
如果用户输入以下文本之一,JavaScript应接受/拒绝输入,如下所示......
"John" --> valid
"" --> invalid
"John Doe" --> valid
" " --> invalid
"John Doe" --> valid (can be edited to remove too many spaces)
" Kim" --> valid (can be edited to remove too many spaces)
" " --> invalid
答案 0 :(得分:0)
在进行检查之前修剪字符串。见下文
if(nameInput.trim()=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
答案 1 :(得分:0)
一个(很多)可能的函数实现使用正则表达式:
function verifyName(nameInput) {
return input.match(/\w{1,12}/) === null ? false : true;
// ^^
// Or some other sensible limitation to the length of a name.
}
答案 2 :(得分:0)
function verifyName(nameInput)
{
nameInput = nameInput.trim();
if(nameInput=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
}
trim()函数将删除所有空格。如果var中只有空格,则trim()返回“”。
答案 3 :(得分:0)
您可以使用正则表达式替换字符串中的所有空格,然后检查其长度。如果在删除所有空格后至少剩下一个字符 - 那么您的有效案例是对吗?
testInput = function(){
var inpStr = $('#txtInp').val();
var teststr = inpStr.replace(/\s/g, "");
//$('#testStrDiv').text(teststr);
if((teststr.length)&&(teststr.length>0))
{
$('#divOutp').html('<b>Valid! </b>');
}
else{
$('#divOutp').html('<b>Invalid! </b>');
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="txtInp" />
<input type="button" onclick="testInput()" value="test" />
<div id="testStrDiv" />
<div id="divOutp" />
&#13;