如何检查String是否有数字?

时间:2014-11-27 20:39:38

标签: javascript regex string

我有这个功能:

function hasNumber(word) {
    return /^[A-Za-z]+$/.test(word)
}

console.log(hasNumber('some text'));        //true
console.log(hasNumber('some text2'));       //true

但它总是返回true 有人能解释我为什么吗?

1 个答案:

答案 0 :(得分:3)

function hasNumber( str ){
  return /\d/.test( str );
}

<子>结果:

hasNumber(0)     // true
hasNumber("0")   // true
hasNumber(2)     // true
hasNumber("aba") // false
hasNumber("a2a") // true


虽然上述功能会在功能遇到一个 数字 \d时立即返回 truthy 如果您希望能够返回匹配结果的数组

function hasNumber( str ){
  return str.match( /\d+/g );
}

<子>结果:

hasNumber( "11a2 b3 c" );  // ["11", "2", "3"]
hasNumber( "abc" );        // null
if( hasNumber( "a2" ) )    // "truthy statement"

+中的/\d+/g一个或多个数字匹配(因此上述结果中的&#34; 11&#34;){{1} 全局 RegExp标志将继续迭代直到传递的字符串结束。

Advanced_Searching_With_Flags
RegExp.prototype.test()
String.prototype.match()