格式化为仅包括unicode字符的字母数字

时间:2012-12-23 13:16:40

标签: javascript regex unicode

我有这个脚本

key = val.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '+')

它工作正常,但它也会取出აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ

等unicode字符

我的问题是如何更改给定的代码以便它也接受这些字符?

感谢。

2 个答案:

答案 0 :(得分:2)

Javascript正则表达式不支持unicode属性。您必须在表达式中添加显式的unicode范围。例如,格鲁吉亚语的范围是10A0-10FF,所以要替换不是拉丁语或格鲁吉亚语的所有内容,你需要像

这样的东西。
val.replace(/[^\w\u10A0-\u10FF]/g, '')

This tool可以为您提供进一步的帮助。

答案 1 :(得分:1)

您可以手动指定允许的字符范围,也可以使用XRegExp之类的库。