这将是一个简单的问题,但不适合我:)。
我正在阅读这段代码:
<!DOCTYPE html>
<html>
<body>
<h1>My First JavaScript</h1>
<p>Please input a number.</p>
<input id="demo" type="text">
<script>
function myFunction()
{
var x=document.getElementById("demo").value;
if(x==""||isNaN(x)) /*?*/
{
alert("Not Numeric");
}
}
</script>
<button type="button" onclick="myFunction()">Click Me!</button>
</body>
</html>
将提供类似
的输出
在代码中,我们通过选中if(x==""||isNaN(x))
来检查是否输入了值,提醒用户。但是如果我在文本框中输入空格字符,则检查失败。检查它的方法是什么?
PS:我正在使用chrome。而且trim()没有用。
答案 0 :(得分:1)
尝试使用正则表达式
function myFunction(){
var x=document.getElementById("demo").value;
if(!(/^\d+$/.test(x))) {
alert("Not Numeric");
}
}
演示:Fiddle
答案 1 :(得分:1)
如果你可以使用jquery,jQuery的修剪很方便。
$ .trim('any value');
或者您只想使用JavaScript,使用trim函数忽略空格。即使新的浏览器支持修剪。我建议创建一个单独的功能来克服浏览器兼容性问题。
创建一个功能
function trim(this)
{
return this.replace(/^\s+|\s+$/g, '');
};
然后在您的代码中剪切将代码更改为
var x=trim(document.getElementById("demo").value);
答案 2 :(得分:0)
我建议在trim
上调用x
,然后再检查它是否为数字。 trim
会移除内容左右两侧的空格(如果有)。
var x=document.getElementById("demo").value;
x = x.trim();
请注意,在某些旧版浏览器中无法使用修剪。如果您需要支持它们,您可以自己实现它或使用像jQuery.trim
这样的库函数。
你也可以使用它:
if(isNaN(parseInt(x)))
(假设你的x应该是一个整数。)
答案 3 :(得分:0)
修剪输入字符串
var x=document.getElementById("demo").value.trim();
答案 4 :(得分:0)
较新的浏览器支持string.trim
功能。对于更广泛的覆盖范围,您可以使用正则表达式删除空格,然后检查结果的长度。如果它大于零,则测试NaN
。
这是一种修剪方式:
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
测试:
var myString = " hello my name is ";
alert("*"+trim(myString)+"*");
这种方法由experts at Mozilla建议。
答案 5 :(得分:0)
如果要避免使用trim或regex,可以使用parseFloat
命令。要实现此功能,请使用parseFloat(x)
,如果x是空格或其他任何非数字,则返回NaN
。