我正在处理HTML页面,似乎无法弄清楚如何检查用户输入中是否包含整数。我在for循环中尝试了parseInt,userInput.charAt(i),isNaN。似乎没什么用。
这是我的HTML
<label for="author" id="author">Favorite Book Author: </label>
<input type="text" name="author" id="authorText">
这是我的JavaScript
function checkAuthor(){
var userInput = $("authorText").value;
for(var i = 0; i < userInput.length; i++)
{
if(userInput.charAt(i) <= 0 || userInput.charAt(i) > 0)
{
addError("There is a number in 'Favorite Book Author' input");
return false;
}
else
return true;
}
}
我需要查看用户输入的是否有任何整数。如果输入是&#34; Mark5&#34;,&#34; Ma5rk&#34;,&#34; 5&#34;,我需要它来捕获该5并显示错误。反正有可行吗?我有一种感觉.charAt无法正常工作,因为它将整数识别为字符串,但我试图对每一个进行parseInt
var x = parseInt(userInput.charAt(i));
在for循环中,然后在if语句中比较x。但似乎没有任何效果
addError函数是这个
function addError(text){
var mylist = window.document.createElement("li");
var myText = window.document.createTextNode(text);
mylist.appendChild(myText);
window.document.getElementByTagName("ul")[0].appendChild(mylist);
}
答案 0 :(得分:0)
您可以使用正则表达式搜索。
var userInput = $("authorText").value;
if (userInput.search(/[^a-zA-Z]+/)) {
addError("There is a number in 'Favorite Book Author' input");
return false.
}
答案 1 :(得分:0)
您应该检查48和57之间的字符代码是否
function checkAuthor(){
var userInput = $("authorText").value;
for(var i = 0; i < userInput.length; i++)
{
var c = userInput.charAt(i).charCodeAt(0);
if(c <= 57 && c >= 48)
{
addError("There is a number in 'Favorite Book Author' input");
return false;
}
}
return true;
}
&#13;
答案 2 :(得分:0)
jQuery和JavaScript不一样
您不能在返回的$()中使用value
。而是使用val()
并使用#
来使用ID作为选择器。
使用[0-9]
检查数字是否存在。
function checkAuthor(){
var userInput = $("#authorText").val(); // add # to get ID and val()
var result = /[0-9]+/.test(userInput);
result?alert("false"):void(0);
console.clear();
console.log(!result);
return !result;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="author" id="author">Favorite Book Author: </label>
<input type="text" name="author" id="authorText" onblur="checkAuthor();" />
答案 3 :(得分:0)
由于您要查找单个数字,因此RejExp测试可能是最简单/最干净的方法。
JQuery的
function checkAuthor(){
var userInput = $("#authorText").val();
// check whether any char in userInput is a number. yes: true. no: false
if(/[0-9]/.test(userInput)) {
addError("There is a number in 'Favorite Book Author' input");
return false;
} else
return true;
}
}
function addError(text){
var mylist = window.document.createElement("li");
var myText = window.document.createTextNode(text);
mylist.appendChild(myText);
window.document.getElementByTagName("ul")[0].appendChild(mylist);
}
Vanilla JS
function checkAuthor(){
var userInput = document.getElementById('#authorText').value;
// check whether any char in userInput is a number. yes: true. no: false
if(/[0-9]/.test(userInput)) {
addError("There is a number in 'Favorite Book Author' input");
return false;
} else
return true;
}
}
function addError(text){
var mylist = window.document.createElement("li");
var myText = window.document.createTextNode(text);
mylist.appendChild(myText);
window.document.getElementByTagName("ul")[0].appendChild(mylist);
}