在索引之间搜索

时间:2015-07-11 16:13:30

标签: javascript

以下返回2个索引。

我想在最后一个换行符中查看这两个指数。

var str = document.getElementById("output").value;
var indexFirst = str.indexOf(document.getElementById("prefix").value.toUpperCase());
var indexLast = str.lastIndexOf(document.getElementById("prefix").value.toUpperCase());
alert(indexFirst + " | " + indexLast);

2 个答案:

答案 0 :(得分:1)

你可以这样做:Working jsFiddle

var newStr = str.substring(indexFirst, indexLast); // get only the relevant part of the string
var pos = newStr.lastIndexOf("\n"); // find the last new line's index
alert(indexFirst + pos); // add the found index to the initial search index

.substring() docs

.lastIndexOf() docs

另一种选择是仅切断字符串的结尾:

var newStr = str.substring(0, indexLast); // chop off the end
var pos = newStr.lastIndexOf("\n", indexStart); // search the last index starting from indexStart
alert(pos); // no need to add indexStart this way

答案 1 :(得分:0)

你可以通过几种方式做到这一点。

<强>子串

如果您想沿着您已经开始的路线走下去,那么您可以使用:

str.substring(indexFirst + 1, indexLast);

工作示例

http://codepen.io/anon/pen/JdveyL

正则表达式(重新阅读答案后不必要)

假设|是“在这之间获取文本”

var re = /\|(.*?)\|/; 
var str = '|Hello|';
var m;

if ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    // View your result using the m-variable.
    // eg m[0] etc.
}