如何在两个字符之间获取文本?

时间:2011-09-09 17:58:31

标签: javascript jquery string

|text to get| Other text.... migh have "|"'s ...

如何从字符串中获取text to get内容(并将其删除)?

应该只是第一场比赛

6 个答案:

答案 0 :(得分:47)

var test_str = "|text to get| Other text.... migh have \"|\"'s ...";
var start_pos = test_str.indexOf('|') + 1;
var end_pos = test_str.indexOf('|',start_pos);
var text_to_get = test_str.substring(start_pos,end_pos)
alert(text_to_get);

答案 1 :(得分:8)

你不需要正则表达式;启动正则表达式引擎对于这么简单的任务来说完全是过度的。

只需使用基本的字符串操作:

function getSubStr(str, delim) {
    var a = str.indexOf(delim);

    if (a == -1)
       return '';

    var b = str.indexOf(delim, a+1);

    if (b == -1)
       return '';

    return str.substr(a+1, b-a-1);
    //                 ^    ^- length = gap between delimiters
    //                 |- start = just after the first delimiter
}

print(getSubStr('|text to get| Other text.... migh have "|"s ...', '|'));

// Output: text to get

Live demo.

答案 2 :(得分:5)

获得它:

"|text to get| Other text.... migh have \"|\"'s ...".match(/\|(.*?)\|/)

删除它:

"|text to get| Other text.... migh have \"|\"'s ...".replace(/\|(.*?)\|/, "")

我不是 关于Regex的专家,所以如果有人有改进,请编辑。

答案 3 :(得分:0)

string = '|text to get| Other text.... migh have "|"\'s ...';
string = string.replace(/^\|[^|]*\|/, '');

答案 4 :(得分:0)

您必须使用match获取所需的文字,然后随身携带replace

var text = "|text to get| Other text.... migh have \"|\"'s ...";
text.replace(text.match(/\|([^|]*)\|/)[1], "");

答案 5 :(得分:-1)

你应该查看以下功能:

split()
substr()

根据您要解决任务的方式,可以使用它。