Javascript 丢弃空格或空字符

Javascript 丢弃空格或空字符,javascript,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=do

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

我正在处理以下代码:

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

我的第一个JavaScript
请输入一个数字

函数myFunction() { var x=document.getElementById(“demo”).value; 如果(x=“”| | isNaN(x))/**/ { 警报(“非数字”); } } 点击我!
这将产生如下输出

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


PS:我用的是chrome。而且trim()不起作用。

我建议在检查它是否是一个数字之前,先在
x
上调用
trim
<代码>修剪将删除内容左侧和右侧的所有空格(如果有)

var x=document.getElementById("demo").value;
x = x.trim();
请注意,trim在某些旧浏览器中不可用。如果您需要支持它们,您可以自己实现它或使用类似的库函数

您还可以使用以下选项:

if(isNaN(parseInt(x)))
(假设你的x是一个整数。)

修剪你的输入字符串

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

尝试使用正则表达式替代

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

演示:

如果您可以使用jQuery,那么jQuery的修剪非常方便

$.trim(‘任意值’)

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

创建一个函数

function trim(this)
{
return this.replace(/^\s+|\s+$/g, '');
};
然后在你的代码剪掉更改代码为

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

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

这里有一种修剪的方法:

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


这种方法是由.

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

这只测试a的存在性digit@ACB
/^\d+$/
是一个函数,它有一个方法
test
,该方法将根据传递的参数是否满足正则表达式返回
true/false
^\d+$
表示只有数字字符的行。要检查什么?数字有很多定义,如果你把一个只有空格的字符串转换成一个数字,它在javascript中就是
0
。如果输入null值,什么是“null值”?文本输入的
value
属性始终是一个字符串,从不
null
。因此,如果我按下空格,它会将其视为字符串?当然,空格是字符串值。OP显然不使用jQuery
var myString = " hello my name is ";
alert("*"+trim(myString)+"*");