我目前正在开发一个项目,它允许我引入一个字符串,该字符串将具有我将抓取的指定标记,获取指定值并删除标记并推送到数组。我有以下条件,我在JavaScript中使用拆分但它没有拆分指定的结束标记。
这是开始字符串
"~~/Document Heading 1~~<div>This is a test <b>JUDO</b> TKD</div>~~end~~<div class="/Document Heading 1">This is a test <b>JUDO</b> TKD</div>"
当前代码阻止
var segmentedStyles = [];
var contentToInsert = selectedContent.toString();
var indexValue = selectedContent.toString().search("~~");
if (indexValue <= 0) {
var insertionStyle = contentToInsert.split("~~");
segmentedStyles.push(insertionStyle);
}
指定的标记用“~~ .... ~~”括起来。在这个代码块中,它正在通过条件,但字符串没有正确分割。我目前正在将Follow字符串推送到我的数组。
这是我目前的结果
[,/Document Heading 1<div>This is a test <b>JUDO</b> TKD</div>end,
<div class="/Document Heading 1">This is a test <b>JUDO</b> TKD</div>]
我的目标
如果存在令牌,我想分割一个字符串。例如我想从~~ .....〜〜开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~该数组应该包含两个值,如下所示
segmentedStyles = [<div>This is a test <b>JUDO</b> TKD</div>],[<div class="/Document Heading 1">This is a test <b>JUDO</b> TKD</div>]
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用正则表达式来匹配部件。
var string = '~~/Document Heading 1~~<div>This is a test <b>JUDO</b> TKD</div>~~end~~<div class="/Document Heading 1">This is a test <b>JUDO</b> TKD</div>',
array = string.split('~~').filter(function (_, i) {
return i && !(i % 2); // just get element 2 and 4 or all other even indices
});
console.log(array);
&#13;
答案 2 :(得分:0)
老实说,我不太明白你想要完成什么哈哈,但我有点理解你想要做的事情:)
首先,只是想弄清楚一些东西。如果你split()
使用/~~/
作为正则表达式进行拆分,你将获得数组中“~~”所包围的所有位,就像你一样。
其次,如果您将令牌更改为~~START~~
和~~END~~
(永不改变的令牌),您只需执行string.split(/~~(START|END)~~/)
即可完成您想要的任务 - 更短更快;)< / p>
第三个字符串始终采用~~<something>~~THE STUFF YOU WANT~~end~~MORE STUFF YOU WANT
格式?如果是的话,我建议这样做:
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;
}
希望这会有所帮助:D