找到两个字符之间的文本,并为每个字符做一些事情

时间:2013-03-07 12:12:40

标签: javascript jquery

我有一个文件已满,文字格式如下: (忽略它是CSS的事实)我需要在两者之间得到字符串角色和每次,做点什么:

<div id="unused">
  |#main|
  #header|
  .bananas|
  #nav|
  etc
</div>

我的代码是:

var test_str = $('#unused').text();
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);
//I want to do something with each string here

这只是第一个字符串。如何在其中添加逻辑以为每个字符串执行某些操作?

5 个答案:

答案 0 :(得分:1)

您可以使用split方法获取|

之间的字符串数组

<强> Live Demo

arr = $('#unused').text().split('|');

答案 1 :(得分:1)

你可以像

一样分开
var my_splitted_var = $('#unused').text().split('|');

答案 2 :(得分:1)

单向;

$.each($("#unused").text().split("|"), function(ix, val) {
    val = $.trim(val); //remove \r|\n
    if (val !== "")
        alert(val);
});

答案 3 :(得分:1)

一种方式:

    var test_str = $('#unused').text();

while(!test_str.indexOf('|'))
{
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);
test_str  = test_str.slice(end_pos,test_str.length);
}

答案 4 :(得分:1)

正则表达式-版本:

<强> LIVE DEMO (jsfiddle.net)

var trimmedHtml = $("#unused").html().replace(/\s/g, '');

var result = new Array();

var regExp = /\|(.+?)(?=\|)/g;
var match = regExp.exec(trimmedHtml);
result.push(match[1]);
while (match != null) {
    match = regExp.exec(trimmedHtml);
    if (match != null) result.push(match[1]);
}

alert(result);

所以你只得到管道之间的元素(|)。 在我的例子中,我将每个匹配结果推送到一个数组。您现在可以迭代它以获得结果。