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

Ell*_*lla 20 javascript string jquery

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

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

这应该只是第一场比赛

rea*_*000 48

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);
Run Code Online (Sandbox Code Playgroud)

  • @Ella:我注意到你选了简短的回答.这个答案显示了一个很好的方法,但是不要忘记检查错误_. (2认同)

Lig*_*ica 9

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

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

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
Run Code Online (Sandbox Code Playgroud)

现场演示.

  • 无论您对此主题有什么看法,OP都可能从这个答案中学到更多.+1 (5认同)

Ale*_*pin 5

为拿到它,为实现它:

"|text to get| Other text.... migh have \"|\"'s ...".match(/\|(.*?)\|/)
Run Code Online (Sandbox Code Playgroud)

要删除它:

"|text to get| Other text.... migh have \"|\"'s ...".replace(/\|(.*?)\|/, "")
Run Code Online (Sandbox Code Playgroud)

我不是Regex 专家,所以如果有人有改进,请编辑.