Javascript 的正则表达式只允许字母数字

新手上路,请多包涵

我需要找到一个只允许字母数字的 reg ex。到目前为止,我尝试的每个人都只适用于字符串是字母数字的,意思是同时包含字母和数字。我只想要一个既允许又不需要两者的东西。

原文由 User 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答
/^[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 _.-]+)$/

这将支持波斯语。

原文由 Greg 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你想返回一个替换的结果,那么这会起作用:

 var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);

这将返回:

 Test123TEST

请注意,gi 是必需的,因为它意味着全局(不仅仅是在第一次匹配时),并且不区分大小写,这就是为什么我使用 az 而不是 a-zA-Z。括号内的 ^ 表示“不在这些括号内的任何内容”。

警告:如果这正是您想要的,那么字母数字就很棒。但是,如果您在国际市场上使用它来表示人名或地理区域,那么您需要考虑 unicode 字符,这是行不通的。例如,如果您有一个像“Âlvarö”这样的名字,它将变成“lvar”。

原文由 Volomike 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题