拆分特定字符的字符串

时间:2009-12-10 14:14:41

标签: javascript function split

我有以下代码:

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"]

该功能不考虑空格。例如,如果您输入

ends_with('Jonas Sand,', ',')

输出将是Sand。需要帮助才能使函数与具有空格的单词一起使用。

4 个答案:

答案 0 :(得分:4)

您可以在split中使用您的分隔符,并使用slice取消除最后一部分之外的所有分隔符:

function ends_with(string, character) {
    return string.split(character).slice(0, -1);
}

答案 1 :(得分:2)

\w匹配单词字符,改为使用[^x],其中x是您的角色。除了你的角色之外,这个匹配。

因此,函数的第一行变为

var regexp = new RegExp('[^' + character + "]+" + character, 'g');

另一方面,如果要匹配由空格分隔的单词,请使用

var regexp = new RegExp('(\\w|\\s)+" + character, 'g');

PS:但是javascript中没有String#split函数?

答案 2 :(得分:1)

尝试使用'[\\w\\s]+'代替'\\w+'来包含空格。

答案 3 :(得分:0)

尝试以下方法:

var string = "word1;w ord2;word3,word4,word5,word6.word7";

function ends_with(string, character) {
    var regexp = new RegExp('.+' + character, 'g');
    var matches = string.match(regexp);
    var replacer = new RegExp(character + '$');
    return matches.map(function(ee) {
        return ee.replace(replacer, '');
    });
}