javascript,判断val是否为单个数字的最佳方式

hvg*_*des 3 javascript regex digits

什么是判断javascript中的值是否为单个数字的最佳方式.我一直在做类似的事情

var valAsString = '' + val;
if (valAsString.match(/\d/) {}
Run Code Online (Sandbox Code Playgroud)

澄清:我的意思是0,1,2,3,4,5,6,7,8,9之一

还有,我应该做什么工作?我很惊讶人们为此想出了多少不同的方式.

CMS*_*CMS 9

正则/\d/表达式将匹配字符串上任何位置的数字,例如"foo1"将匹配"1".

对于regexp方法需要这样的东西,以确保字符串将包含一个数字:

if (/^\d$/.test(val))  {
  //..
}
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用该test方法,当您只想检查字符串是否与模式匹配时,建议使用该方法,此test方法内部将转换为sting参数.

另一种简短的非regexp方法:

function isDigit(val) {
  return String(+val).charAt(0) == val;
}
Run Code Online (Sandbox Code Playgroud)