RegEx for Javascript 只允许字母数字
2022-08-30 00:02:23
我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字时才有效,这意味着同时包含字母和数字。我只想要一个允许其中任何一个,而不需要两者兼而有之。
我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字时才有效,这意味着同时包含字母和数字。我只想要一个允许其中任何一个,而不需要两者兼而有之。
/^[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
更新(支持通用字符)
如果你需要这个正则表达式支持通用字符,你可以在这里找到unicode字符列表。
例如:/^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/
这将支持波斯语。
如果要返回替换的结果,则此方法有效:
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
这将返回:
Test123TEST
请注意,gi是必要的,因为它意味着全局(不仅仅是在第一个匹配项上),并且不区分大小写,这就是为什么我有a-z而不是a-zA-Z。括号内的 ^ 表示“不在这些括号中的任何内容”。
警告:字母数字很棒,如果这正是你想要的。但是,如果您在国际市场上使用这个名字或地理区域,那么您需要考虑Unicode字符,这是行不通的。例如,如果你有一个像“Âlvarö”这样的名字,它会让它成为“lvar”。