search

Home  >  Q&A  >  body text

javascript - 多国语言如何用正则表达式匹配?

にほんご Português 中文繁体1.0

巴扎黑巴扎黑2902 days ago507

reply all(3)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 16:47:49

    • 首先查询你想要匹配语言的Unicode值域

    • 比如,你想要匹配的是简体中文,它的值域为4E00到9F45间

    demo = /[\u4E00-\u9F45]/g
    demo.test("测试") // print true
    demo.test("test") // print false
    • 这里是一个关于js正则表达式的中文文档

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 16:47:49

    举个中文的例子:
    匹配中文的正则一般为:/[\u4e00-\u9fa5]+/,其中4e00到9fa5就是中文的范围(其实中文的范围不止这么大,还有CJK范围的)。

    eg:

    /[\u4e00-\u9fa5]+/.test('中') === true

    所以你只要找到你需要的语言的unicode范围,写个向上面的正则表达式就OK了。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:47:49

    东亚文字的unicode范围有大量重叠, 所以你没法在unicode这一层(简单又精确地)匹配自然语言, 得上language model之类东西.

    reply
    0
  • Cancelreply