代码之家  ›  专栏  ›  技术社区  ›  user1627930

匹配法语字符的Javascript正则表达式

  •  0
  • user1627930  · 技术社区  · 7 年前

    我需要将一个单词与法语字符匹配( dérange )使用正则表达式。到目前为止,我有:

        var text = "An inconvenient (qui dérange) truth";
        var splitText = text.trim().match(/\w+|\s+|[^\s\w]+/g);
        
        console.log(splitText);

    然而,它处理 é 作为一封单独的信。为什么?

    我需要一个正则表达式在 match() 方法,使 splitText 对象还包含单词 déranger 而不是这三个字 d , é range 就像现在一样。

    2 回复  |  直到 7 年前
        1
  •  1
  •   YouneL    7 年前

    你可以试试 split method 使用正则表达式获取文本中的所有单词,下面是一个工作示例:

    var text = "An inconvenient (qui dérange) truth";
    
    var splitText = text.trim().split(/\s+/);
    
    console.log(splitText);
        2
  •  0
  •   Bergi    7 年前

    似乎您希望将空白与非空白分开。但是,非空白有两个表达式: \w+ (匹配 [a-zA-Z_0-9]+ )和 [^\s\w]+ (匹配所有其他内容,除了空白-因此这是匹配 é 个别地。把这两者结合起来 [^\s]+ 或-更简单- \S+ :

    var text = "An inconvenient (qui dérange) truth";
    var splitText = text.trim().match(/\S+|\s+/g);
    console.log(splitText);