【问题标题】:How can a separate search string using regex in javascript?如何在 javascript 中使用正则表达式单独搜索字符串?
【发布时间】:2014-12-18 05:59:41
【问题描述】:

对于像“”foo and bar“或foo”这样的搜索字符串,我想将字符串分开:1)“foo and bar”2)或3)foo。这意味着我想在单个字符串中考虑引用的单词。在服务器端我正在使用(Java):

Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(searchText);
        while (m.find()) {
            String searchTermStr = m.group(1);
            list.add(buildSearchTerm(searchTermStr));
}

如何在 javascript 中获得类似的输出?我正在尝试使用此正则表达式拆分 searchText,但它没有给出所需的结果。

var pattern = new RegExp("([^\"]\\S*|\".+?\")\\s*","gi");
var searchTerms = $scope.searchText.split(pattern);

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    在 Javascript 中你可以使用这个:

    var pattern = /([^"\s]+|"[^"]*")/g;
    

    RegEx Demo

    您必须在 Javascript 中使用 String#match 而不是 split:

    var searchTerms = $scope.searchText.match(pattern);
    //=> ["foo and bar", or, foo]
    

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      相关资源
      最近更新 更多