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


当前回答

对于多语言支持:

var filtered = 'Hello Привет 你好 123_456'.match(/[\p{L}\p{N}\s]/gu).join('')
console.log(filtered) // --> "Hello Привет 你好 123456"

这可以匹配大多数语言中的任何字母、数字或空格。

[…->匹配条件 [ab] ->匹配'a'或'b' \p{L} ->匹配任意语言中的任意字母 \p{N} ->匹配任意语言的任意数字 \s ->匹配空格 第一场比赛后不要停止 /u ->支持unicode模式匹配

裁判:https://javascript.info/regexp-unicode

其他回答

字母数字区分大小写:

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

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

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

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

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

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

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

/^[a-z0-9]+$/i

^         Start of string
[a-z0-9]  a or b or c or ... z or 0 or 1 or ... 9
+         one or more times (change to * to allow empty string)
$         end of string    
/i        case-insensitive

更新(支持通用字符)

如果您需要这个regexp支持通用字符,您可以在这里找到unicode字符列表。

美国小妞example: / ^(黑a-zA-Z0-9 \ u0600——地球,随便\ u06FF u0660——\ u0669 \ u06F0——\ u06F9 _. -铝+)美元/

这将支持波斯语。

保存这个常数

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

JAVASCRIPT只接受数字,字母和特殊字符

document.getElementById("onlynumbers").onkeypress = function (e) { onlyNumbers(e.key, e) }; document.getElementById("onlyalpha").onkeypress = function (e) { onlyAlpha(e.key, e) }; document.getElementById("speclchar").onkeypress = function (e) { speclChar(e.key, e) }; function onlyNumbers(key, e) { var letters = /^[0-9]/g; //g means global if (!(key).match(letters)) e.preventDefault(); } function onlyAlpha(key, e) { var letters = /^[a-z]/gi; //i means ignorecase if (!(key).match(letters)) e.preventDefault(); } function speclChar(key, e) { var letters = /^[0-9a-z]/gi; if ((key).match(letters)) e.preventDefault(); } <html> <head></head> <body> Enter Only Numbers: <input id="onlynumbers" type="text"> <br><br> Enter Only Alphabets: <input id="onlyalpha" type="text" > <br><br> Enter other than Alphabets and numbers like special characters: <input id="speclchar" type="text" > </body> </html>