首次出现字符后删除所有文字,包括之前没有字符的任何字符

时间:2015-03-01 09:01:53

标签: jquery regex

给出带逗号的任何句子:

var myText = 'This is mine, all of it, and more!'

我想删除第一个逗号之后的所有内容,包括前面的单词。

以上示例将输出:

This is

如果没有逗号,则应返回所有内容。

我认为我需要使用类似的东西,但不知道从哪里开始:

myText.replace(/.*,/, "");

2 个答案:

答案 0 :(得分:2)

你可以这样做:

var str = "This is mine, all of it, and more!";
str = str.replace(/ *\b[^, ]+,.*/, "");
//=> This is

RegEx Demo

答案 1 :(得分:0)

好吧,发现正则表达式不可读,所以也许可以考虑一下:

if (str.indexOf(',') != -1){
    /*
        parts = str.split(',')
        words = parts[0].split(' ')
        # remove last word and re-join
        return words.slice(0, -1).join(' ');
    */
    return str.split(',')[0].split(' ').slice(0,-1).join(' ');
}
return str;