我的最终目标是验证输入字段。输入可以是字母也可以是数字。
当前回答
如果我没记错的话,这个问题需要“contains number”,而不是“is number”。所以:
function hasNumber(myString) {
return /\d/.test(myString);
}
其他回答
你也可以试试lodash:
const isNumeric = number =>
_.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))
这就是你需要的。
var hasNumber = /\d/;
hasNumber.test("ABC33SDF"); //true
hasNumber.test("ABCSDF"); //false
检查它的一种方法是遍历字符串并在命中数字时返回true(或false,这取决于您想要什么)。
function checkStringForNumbers(input){
let str = String(input);
for( let i = 0; i < str.length; i++){
console.log(str.charAt(i));
if(!isNaN(str.charAt(i))){ //if the string is a number, do the following
return true;
}
}
}
我们可以使用!/[^a-zA-Z]/.test(e)来检查它。 只需运行snippet并检查。
handleValueChange() { 如果(! / [^ a-zA-Z] / test (. getelementbyid(“textbox_id”)value)) { var x = document.getElementById('result'); x.innerHTML = '字符串不包含数字'; }其他{ var x = document.getElementById('result'); x.innerHTML = 'String does contains number'; } } 输入{ 填充:5 px; } <input type="text" id="textbox_id" placeholder="Enter string here…" oninput="handleValueChange()" > < p id = "结果" > < / p >
当字符串以整数的表示形式开始时,parseInt提供整数:
(parseInt '1a') is 1
..所以也许:
isInteger = (s)->
s is (parseInt s).toString() and s isnt 'NaN'
(isInteger 'a') is false
(isInteger '1a') is false
(isInteger 'NaN') is false
(isInteger '-42') is true
原谅我的CoffeeScript。