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