巴扎黑2017-04-10 16:47:49
首先查询你想要匹配语言的Unicode值域
比如,你想要匹配的是简体中文,它的值域为4E00到9F45间
demo = /[\u4E00-\u9F45]/g
demo.test("测试") // print true
demo.test("test") // print false
这里是一个关于js正则表达式的中文文档
ringa_lee2017-04-10 16:47:49
举个中文的例子:
匹配中文的正则一般为:/[\u4e00-\u9fa5]+/,其中4e00到9fa5就是中文的范围(其实中文的范围不止这么大,还有CJK范围的)。
eg:
/[\u4e00-\u9fa5]+/.test('中') === true
所以你只要找到你需要的语言的unicode范围,写个向上面的正则表达式就OK了。
巴扎黑2017-04-10 16:47:49
东亚文字的unicode范围有大量重叠, 所以你没法在unicode这一层(简单又精确地)匹配自然语言, 得上language model之类东西.