如何使用javascript查找和替换某些关键字之间的文本?

时间:2011-12-29 16:22:01

标签: javascript jquery encryption userscripts

例如我有这个文本

"!?vake 7EnEebjP8jXf JFyd5hpIVa6B  !?vake".

开始和结束关键字是“!?vake”,我想检索关键字之间的加密内容,解密并替换它。

替换前的html代码为:

<span class="messageBody" data-ft="{&quot;type&quot;:3}">‎!?vake 7EnEebjP8jXf JFyd5hpIVa6B
Fu63LH23dAiB !?vake</span>

并在解密后:

<span class="messageBody" data-ft="{&quot;type&quot;:3}">‎i am the decrypted text</span>

替换应该在整个html文档中工作,而不知道加密文本的具体元素。

3 个答案:

答案 0 :(得分:2)

您可以使用RegExp实现此目的。在此处查看演示:http://jsfiddle.net/diode/KVqJS/4/

var body = $("body").html();

var matched;
while ((matched = body.match(/!\?vake (.*?) !\?vake/))) {
    if(matched.length > 1){
        body = body.replace(/\!\?vake (.*) \!\?vake/, decode(matched[1]));
    }

}

$("body").html(body);

function decode(encoded) {
    return "decoded " + encoded;
}

答案 1 :(得分:1)

您可以使用正则表达式查找(和替换)数据。

这是一个快速而又脏的JSFiddle:http://jsfiddle.net/z8rVc/1/

我确信有人会提出一种更优雅的方法。

答案 2 :(得分:0)

您可以使用以下正则表达式搜索并替换JS中的代码:

var a = "!?vake 7EnEebjP8jXf JFyd5hpIVa6B  !?vake";
var b = a.replace(/\!\?vake(.*)\!\?vake/g, '$1');
/// b contains your string between the keywords which you can decrypt as required.