我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字的情况下工作,意思是既包含字母又包含数字。我只想要一个既允许其中一种,又不要求两者兼得的。


当前回答

字母数字区分大小写:

if (/^[a-zA-Z0-9]+$/.test("SoS007")) {
  alert("match")
}

其他回答

保存这个常数

const letters = /^[a-zA-Z0-9]+$/

现在,为了检查部件,使用.match()

const string = 'Hey there...' // get string from a keyup listner
let id = ''
// iterate through each letters
for (var i = 0; i < string.length; i++) {
  if (string[i].match(letters) ) {
    id += string[i]
  } else {
    // In case you want to replace with something else
    id += '-'  
  }
}
return id

与检查有效的字母数字字符串不同,可以通过检查字符串中的任何无效字符来间接实现这一点。通过检查与有效字母数字字符串的补码匹配的任何内容来执行此操作。

/[^a-z\d]/i    

这里有一个例子:

var alphanumeric = "someStringHere";
var myRegEx  = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));

注意isValid处的逻辑not运算符,因为我测试的是字符串是否为假,而不是它是否有效。

Jquery to accept only NUMBERS, ALPHABETS and SPECIAL CHARECTERS <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> </head> <body> Enter Only Numbers: <input type="text" id="onlynumbers"> <br><br> Enter Only Alphabets: <input type="text" id="onlyalpha"> <br><br> Enter other than Alphabets and numbers like special characters: <input type="text" id="speclchar"> <script> $('#onlynumbers').keypress(function(e) { var letters=/^[0-9]/g; //g means global if(!(e.key).match(letters)) e.preventDefault(); }); $('#onlyalpha').keypress(function(e) { var letters=/^[a-z]/gi; //i means ignorecase if(!(e.key).match(letters)) e.preventDefault(); }); $('#speclchar').keypress(function(e) { var letters=/^[0-9a-z]/gi; if((e.key).match(letters)) e.preventDefault(); }); </script> </body> </html>

**JQUERY to accept only NUMBERS , ALPHABETS and SPECIAL CHARACTERS **


<!DOCTYPE html>
    $('#onlynumbers').keypress(function(e) {
      var letters=/^[0-9]/g; //g means global
      if(!(e.key).match(letters)) e.preventDefault();
    });

    $('#onlyalpha').keypress(function(e) {
      var letters=/^[a-z]/gi; //i means ignorecase
      if(!(e.key).match(letters)) e.preventDefault();
    });

    $('#speclchar').keypress(function(e) {
      var letters=/^[0-9a-z]/gi; 
      if((e.key).match(letters)) e.preventDefault();
    });
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> 

只输入数字: 只输入字母: 输入除字母和数字以外的特殊字符:

</body>
</html>

扩展字符串原型以便在整个项目中使用

    String.prototype.alphaNumeric = function() {
        return this.replace(/[^a-z0-9]/gi,'');
    }

用法:

    "I don't know what to say?".alphaNumeric();
    //Idontknowwhattosay
^\s*([0-9a-zA-Z]*)\s*$

或者,如果你想要最少一个字符:

^\s*([0-9a-zA-Z]+)\s*$

方括号表示一组字符。^是输入的开始。$是输入的结束符(或换行符,取决于您的选项)。\s是空格。

前面和后面的空格是可选的。

圆括号是分组操作符,允许您提取所需的信息。

编辑:删除了我的错误使用\w字符集。