【问题标题】:How do I split a string that contains different signs?如何拆分包含不同符号的字符串?
【发布时间】:2010-12-25 05:15:01
【问题描述】:

我想拆分一个如下所示的字符串:word1;word2;word3,word4,word5,word6.word7。等等

字符串来自我从从数据库收集数据的 php 页面获得的输出,因此字符串可能看起来不同,但第一个单词总是用 ; 分隔。然后是 .(dot) 的最后一个词

我希望能够获取所有以 example 结尾的单词; , 要么 。成一个数组。有人知道怎么做吗?

我也想知道如何只获取以 ; 结尾的单词

下面的函数 ends_with(string, character) 可以工作,但它不考虑空格。例如,如果单词是 Jonas Sand,它只打印 Sand。有人知道如何解决这个问题吗?

【问题讨论】:

    标签: javascript string replace split match


    【解决方案1】:

    大概

    var string = "word1;word2;word3,word4,word5,word6.word7";
    var array = string.split(/[;,.]/);
    // array = ["word1", "word2", "word3", "word4", "word5", "word6", "word7"]
    

    密钥在传递给String#split 方法的正则表达式中。字符类运算符[] 允许正则表达式在其包含的字符之间进行选择。

    如果需要对包含多个字符的字符串进行拆分,可以使用|进行区分。

    var array = string.split(/;|,|./) // same as above
    

    编辑:没有仔细阅读问题。像这样的

    var string = "word1;word2;word3,word4,word5,word6.word7";
    
    function ends_with(string, character) {
      var regexp = new RegExp('\\w+' + character, 'g');
      var matches = string.match(regexp);
      var replacer = new RegExp(character + '$');
      return matches.map(function(ee) {
        return ee.replace(replacer, '');
      });
    }
    // ends_with(string, ';') => ["word1", "word2"]
    

    【讨论】:

    • 但如果我只想要以 ; 结尾的单词
    • 仍然会遇到问题,例如 word3 有空格,如 ;James,Jonas Sand,代码只打印出 Howard,Sand
    【解决方案2】:
    var myString = word1;word2;word3,word4,word5,word6.word7;
    var result = myString.split(/;|,|./);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多