我有这个功能:
function hasNumber(word) {
return /^[A-Za-z]+$/.test(word)
}
console.log(hasNumber('some text')); //true
console.log(hasNumber('some text2')); //true
但它总是返回true 有人能解释我为什么吗?
答案 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()