Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试字符串是否为非数字_Javascript_String_Text_Extendscript - Fatal编程技术网

Javascript 如何测试字符串是否为非数字

Javascript 如何测试字符串是否为非数字,javascript,string,text,extendscript,Javascript,String,Text,Extendscript,我试图验证字符串是文本还是数字。 找不到正确的验证方法。 你能给我一些建议吗 我的问题是: var myNumber = "006"; var myText = "1. This is not a number"; isNaN(myNumber); // false isNaN(myText); // false I tried also: isNaN(myNumber.split('.')[1]); // true isNaN(myText.split('.')[1]); // true

我试图验证字符串是文本还是数字。 找不到正确的验证方法。 你能给我一些建议吗

我的问题是:

var myNumber = "006";
var myText = "1. This is not a number";

isNaN(myNumber); // false
isNaN(myText); // false

I tried also:
isNaN(myNumber.split('.')[1]);  // true
isNaN(myText.split('.')[1]); // true

parseInt(myNumber); // 6
parseInt(myText); // 1
我想要实现的是找到何时可以将字符串转换为数字(请参见myNumber)。如果字符串实际上是一个文本,如何用javascript识别它

如果
parseInt()
不能达到您想要的结果,您可以尝试
Number
构造函数。它为非数字提供
NaN
,您可以使用
isNaN()
函数进行验证

var myNumber=“006”;
var myText=“1.这不是一个数字”;
console.log(编号(myNumber));

console.log(编号(myText))如果我正确理解了您的问题,我可能会有一个解决方案,但即使字符串是一个数字,这也会起作用,所以请看:

var yourNumber="55";
if(yourNumber*1==yourNumber){
 alert("It's a number");
}else{alert("it's not a number");}

您可以使用isNaN函数检查文本是否为数字:

var myNumber=“006”;
var myText=“1.这不是一个数字”;
log(myNumber+':'+!isNaN(myNumber));
log(myText+':'+!isNaN(myText))您可以使用正则表达式

function isNumber(num){
  return /^(\d+)?(\.)?\d+$/.test(num);
}

isNumber("006") // true
isNumber(".6") // true
isNumber("1 not a number") // false
isNumber("23.63") // true
isNumber("23.6.3") // false

短篇小说:

我真的会使用
typeof
操作符

来自isNaN()| JavaScript MDN:

isNaN()
函数确定值是否为非数字。
..
您可以选择使用ECMAScript 6中定义的
Number.isNaN()
,也可以使用
typeof
确定值是否为非数字

说来话长:

在节点控制台中尝试了以下操作

NaN还源于试图强制转换为没有原始数值可用的非数值的数值

与全局isNaN()函数相比,Number.isNaN()不会遇到将参数强制转换为数字的问题。这意味着现在可以安全地传递通常会转换为NaN的值,但实际上与NaN的值不同。这也意味着只有同样为NaN的number类型的值返回true

typeof
运算符返回一个字符串,指示未计算的操作数的类型


在我看来,试着看看这里最简单的方法是将变量乘以1,然后检查结果是否为NaN,即
isNaN(myVariable*1)
isNaN(myNumber)
返回true,而不是false。可能重复的请不要编辑文章标题以添加答案。如果这里的答案解决了您的问题,我建议您将答案标记为已解决,否则请留下评论(或者更好,回答您自己的问题),以指导其他人了解您如何解决您的问题(以便将来帮助读者)。更多信息请参见本帖:嗨,pawel,谢谢。我也试过这样做,但我忘了包括$sign。是的,它可以在浏览器中使用。我忘了说我正在使用Adobe ExtendScript。我认为使用
Number
构造函数的解决方案是最好的!谢谢@DmitryMasley这个对我不起作用,因为我使用的是ExtendScript。字符串yourNumber=“55.bla bla bla”怎么样?
function isNumber(num){
  return /^(\d+)?(\.)?\d+$/.test(num);
}

isNumber("006") // true
isNumber(".6") // true
isNumber("1 not a number") // false
isNumber("23.63") // true
isNumber("23.6.3") // false
isNaN(123)           // false
isNaN(true)          // false
isNaN("123")         // false
isNaN({})            // true
isNaN(undefined)     // true
Number.isNaN(undefined)      // false
Number.isNaN({})             // false
Number.isNaN(true)           // false
Number.isNaN(123)            // false
Number.isNaN(NaN)            // true
Number.isNaN(0/0)            // true
typeof(123)           // number
typeof("123")         // string
typeof(true)          // boolean