Javascript 我想用字符串获取给定标记的值

Javascript 我想用字符串获取给定标记的值,javascript,string,split,Javascript,String,Split,我目前正在进行一个项目,该项目将允许我引入一个字符串,该字符串将有一个指定的令牌,我将抓取该令牌,获取指定的值并删除该令牌,并将其推送到一个数组中。我有以下条件,我在JavaScript中使用split,但它不是在指定的结束标记上进行分割 这是开始字符串 "~~/Document Heading 1~~<div>This is a test &lt;b&gt;JUDO&lt;/b&gt; TKD</div>~~end~~<div cl

我目前正在进行一个项目,该项目将允许我引入一个字符串,该字符串将有一个指定的令牌,我将抓取该令牌,获取指定的值并删除该令牌,并将其推送到一个数组中。我有以下条件,我在JavaScript中使用split,但它不是在指定的结束标记上进行分割

这是开始字符串

"~~/Document Heading 1~~<div>This is a test &lt;b&gt;JUDO&lt;/b&gt; TKD</div>~~end~~<div class="/Document Heading 1">This is a test &lt;b&gt;JUDO&lt;/b&gt; TKD</div>"
[,/Document Heading 1<div>This is a test &lt;b&gt;JUDO&lt;/b&gt; TKD</div>end,

<div class="/Document Heading 1">This is a test &lt;b&gt;JUDO&lt;/b&gt; TKD</div>]
“~~~/文档标题1~~这是一个测试bJUDO/b TKD~~end~~这是一个测试bJUDO/b TKD”
当前代码块

 var segmentedStyles = [];
 var contentToInsert = selectedContent.toString();
 var indexValue = selectedContent.toString().search("~~");

 if (indexValue <= 0) {                            
                        var insertionStyle = contentToInsert.split("~~");
                        segmentedStyles.push(insertionStyle);                                                             
                    }
var segmentedStyles=[];
var contentToInsert=selectedContent.toString();
var indexValue=selectedContent.toString().search(“~~”);

如果(indexValue假设字符串总是以
~/
开头,则可以使用以下正则表达式来获取所需的数组

~([^\/].*)~~结束~(.*)


您可以使用正则表达式来匹配零件

var string='~~~/Document Heading 1~~这是一个测试bJUDO/b TKD~~end~~这是一个测试bJUDO/b TKD',
array=string.split(“~~”).filter(函数(_,i){
返回i&!(i%2);//只获取元素2和4或所有其他偶数索引
});

console.log(array);
老实说,我不太明白你想要完成什么哈哈,但我有点明白你想要做什么:)

首先,只是想弄清楚一些事情。如果您使用
split()
字符串作为用于拆分的正则表达式,您将获得数组中由“~~”包围的所有位,就像您所做的那样

第二,如果您将令牌更改为
~~开始~~
~~结束~
(永不更改的令牌),只需执行
string.split(/~~(START | END)~/)
-更短更快;)即可完成所需操作

第三个是字符串的格式总是
~~~~你想要的东西~~结束~~你想要的更多东西
?如果是,我建议这样做:

function splitTheTokens(str) {
    var result = [];
    var parts = str.split(/~~end~~/);

    for (var i = 0; i < parts.length; i++) {
        if (!parts[i]) { continue; } // Skips blanks
        if (parts[i].indexOf("~~") == 0) {
            // In case you want to do something with the name thing:
            var thisPartName = parts[i].substring(2, parts[i].indexOf("~~", 2));

            // What (I think) you actually want
            var thisPartValue = parts[i].substring(thisPartName.length + 4);

            result.push(thisPartValue);
        }
        else {
            result.push(parts[i]);
        }
    }

    return result;
}
function splitTheTokens(str){
var结果=[];
var parts=str.split(/~~ end~~/);
对于(变量i=0;i

希望这有帮助:D

请添加字符串,您喜欢拆分以及拆分和重新排列后的结果这是我带来的内容=“这是开始字符串”这是我当前的结果=
[,/Document Heading 1这是一个测试bJUDO/b TKDend,这是一个测试bJUDO/b TKD]
是第一个
~
后面总是跟着一个
/
?不,它后面可以跟任何东西,我只是把~~~~~~当作一个容器来保存一个值,这个值会起作用。唯一的一点是,我不能保证后面会是一个我应该期待的值。您认为转换为字符数组有意义吗?您的正则表达式无效,它不会到达末尾
function splitTheTokens(str) {
    var result = [];
    var parts = str.split(/~~end~~/);

    for (var i = 0; i < parts.length; i++) {
        if (!parts[i]) { continue; } // Skips blanks
        if (parts[i].indexOf("~~") == 0) {
            // In case you want to do something with the name thing:
            var thisPartName = parts[i].substring(2, parts[i].indexOf("~~", 2));

            // What (I think) you actually want
            var thisPartValue = parts[i].substring(thisPartName.length + 4);

            result.push(thisPartValue);
        }
        else {
            result.push(parts[i]);
        }
    }

    return result;
}