丢弃空格或空字符

时间:2013-03-14 13:30:45

标签: javascript

这将是一个简单的问题,但不适合我:)。

我正在阅读这段代码:

<!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> 

将提供类似

的输出

this

在代码中,我们通过选中if(x==""||isNaN(x))来检查是否输入了值,提醒用户。但是如果我在文本框中输入空格字符,则检查失败。检查它的方法是什么?

PS:我正在使用chrome。而且trim()没有用。

6 个答案:

答案 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