我的最终目标是验证输入字段。输入可以是字母也可以是数字。


当前回答

我们可以使用!/[^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 >

其他回答

这就是你需要的。

      var hasNumber = /\d/;   
      hasNumber.test("ABC33SDF");  //true
      hasNumber.test("ABCSDF");  //false 

你可以使用javascript来做到这一点。不需要Jquery或Regex

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

而实现

var val = $('yourinputelement').val();
if(isNumeric(val)) { alert('number'); } 
else { alert('not number'); }

更新:要检查字符串中是否有数字,可以使用正则表达式来检查

var matches = val.match(/\d+/g);
if (matches != null) {
    alert('number');
}

你也可以试试lodash:

const isNumeric = number => 
  _.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))
function validate(){    
    var re = /^[A-Za-z]+$/;
    if(re.test(document.getElementById("textboxID").value))
       alert('Valid Name.');
    else
       alert('Invalid Name.');      
}

检查它的一种方法是遍历字符串并在命中数字时返回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;
        }
    }
}