1

将是一个简单的问题,但对我来说不是:)。

我正在浏览这段代码:

<!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:我正在使用铬。并且 trim() 不起作用。

4

6 回答 6

1

尝试正则表达式 insted

function myFunction(){
    var x=document.getElementById("demo").value;
    if(!(/^\d+$/.test(x))) {
        alert("Not Numeric");
    }
}

演示:小提琴

于 2013-03-14T13:36:03.030 回答
1

如果您可以使用 jquery,则 jQuery 的修剪很方便。

$.trim('任意值');

或者您只想使用 JavaScript,使用修剪功能忽略空白。即使新浏览器支持修剪。我建议创建一个单独的函数来克服浏览器兼容性问题。

创建一个函数

function trim(this)
{
return this.replace(/^\s+|\s+$/g, '');
};

然后在您的代码中将代码更改为

var x=trim(document.getElementById("demo").value);
于 2013-03-14T13:37:48.297 回答
0

如果你想避免使用 trim 或 regex,你可以使用parseFloat命令。要实现这一点,请使用,如果 x 是空格或其他任何不是数字的东西parseFloat(x),它将返回。NaN

于 2013-03-14T13:42:03.667 回答
0

我建议trimx检查它是否是一个数字之前先打电话。trim将删除内容左侧和右侧的任何空格(如果有)。

var x=document.getElementById("demo").value;
x = x.trim();

请注意,修剪在某些较旧的浏览器中不可用。如果您需要支持它们,您可以自己实现它或使用像jQuery.trim.

你也可以使用这个:

if(isNaN(parseInt(x)))

(假设你的 x 应该是一个整数。)

于 2013-03-14T13:35:09.470 回答
0

修剪你的输入字符串

var x=document.getElementById("demo").value.trim();
于 2013-03-14T13:35:53.900 回答
0

较新的浏览器支持一项string.trim功能。对于更广泛的覆盖范围,您可以使用正则表达式删除空格,然后检查结果的长度。如果大于零,则测试NaN.

这是修剪的一种方法:

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}

测试:

var myString = " hello my name is ";
alert("*"+trim(myString)+"*");

这种方法是Mozilla 的专家建议的。

于 2013-03-14T13:38:28.817 回答