使用JS或jQuery解析自定义文本标记

时间:2016-02-26 22:01:57

标签: javascript jquery html

我需要搜索特定类的<div>以获取简单的文本系统,然后存储文本。

基本上,会有一个div,而div里面可能会有一些文字:

[ALERT](TEXT TO STORE HERE)

我想在div中搜索ALERT标记,然后将()中的任何文本存储在变量(如果存在)下,如果找到则将警报推送到控制台。

然而,虽然我可以很容易地找到第一部分[ALERT],但我无法弄清楚如何找到整个字符串,或者存储包​​含的文本。我认为它最终应该是这样的:

var alerttext = $("#result").find("[ALERT](.)")=(function()
{
return $(this).html();
}).get();

然而,这似乎相当遥远,绝对没有用。

编辑:html类似于:

<div id="bbb" class=""><p id="aaa">text test text

[ALERT](TEXT TO STORE HERE)

More text down here

</p></div>

1 个答案:

答案 0 :(得分:2)

尝试使用.text()String.prototype.replace()RegExp /(\n.+\()|(\).+\n+\s+$)/g一起将输入字符串替换为(,从)替换为输入结束,删除匹配字符串开头和结尾的换行符,空格字符

&#13;
&#13;
var arr = [];

$("#bbb").text(function(i, text) {
  if (text.indexOf("[ALERT]") >= 0) {
    var match = text.replace(/(\n.+\()|(\).+\n+\s+$)/g, "");
    arr.push(match);
    console.log(arr);
  };
  return text
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="bbb" class="">
  <p id="aaa">text test text [ALERT](TEXT TO STORE HERE) More text down here
  </p>
</div>
&#13;
&#13;
&#13;