使具有所有空格值的文本框无效
Make Textbox with Value of All Spaces Invalid
我有这些脚本...
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>
如果用户不想在文本框中输入 his/her 名称,这将显示错误。
如果用户懒惰,he/she 会输入“ ”(一个 space 或更多)作为名称怎么办?这可以被JavaScript接受。在 if
条件下它将 return 为假。
但我希望用户不要只输入 spaces。有什么办法吗?
注意:任意输入space个数(不含任何字母)均无效
如果用户输入以下文本之一,JavaScript 应该 accepts/rejects 输入如下...
"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
Trim 检查前的字符串。见下文
if(nameInput.trim()=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
您的函数的一个(相当多的)可能实现使用正则表达式:
function verifyName(nameInput) {
return input.match(/\w{1,12}/) === null ? false : true;
// ^^
// Or some other sensible limitation to the length of a name.
}
function verifyName(nameInput)
{
nameInput = nameInput.trim();
if(nameInput=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
}
trim() 函数将删除所有空格。如果 var 中只有空格,trim() 和 return "".
您可以使用正则表达式替换字符串中的所有空格,然后检查其长度。如果在删除所有空格后至少还剩下一个字符 - 这是您的有效情况,对吗?
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>');
}
}
<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" />
我有这些脚本...
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>
如果用户不想在文本框中输入 his/her 名称,这将显示错误。
如果用户懒惰,he/she 会输入“ ”(一个 space 或更多)作为名称怎么办?这可以被JavaScript接受。在 if
条件下它将 return 为假。
但我希望用户不要只输入 spaces。有什么办法吗?
注意:任意输入space个数(不含任何字母)均无效
如果用户输入以下文本之一,JavaScript 应该 accepts/rejects 输入如下...
"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
Trim 检查前的字符串。见下文
if(nameInput.trim()=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
您的函数的一个(相当多的)可能实现使用正则表达式:
function verifyName(nameInput) {
return input.match(/\w{1,12}/) === null ? false : true;
// ^^
// Or some other sensible limitation to the length of a name.
}
function verifyName(nameInput)
{
nameInput = nameInput.trim();
if(nameInput=="")
{
// error
alert('please enter your name');
}
else
{
// accepted
}
}
trim() 函数将删除所有空格。如果 var 中只有空格,trim() 和 return "".
您可以使用正则表达式替换字符串中的所有空格,然后检查其长度。如果在删除所有空格后至少还剩下一个字符 - 这是您的有效情况,对吗?
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>');
}
}
<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" />