[英]JavaScript Array remove begin the begin quotes and end quotes in an array
[英]Javascript cut string by begin and end and store in array
我需要做这样的算法:
var example = "Hello $$user$$ your real name is $$realname$$. Have a good day"
Output --> ["Hello ", "$$user$$", " your real name is ", "$$realname$$", ". Have a good day"]
因此,用一个选定的字符分割该部分,然后将它们放在一起组成一个字符串数组。 有人可以帮我吗?
我正在寻找JavaScript / jQuery的解决方案
看来您想按模式$$ ... $$分割; 您可以使用/(\\$\\$.*?\\$\\$)/
; 为了使模式保留在结果中,可以将其设为捕获组,也可以使其成为惰性( ? ),以使其以匹配的最短长度模式进行分割:
example.split(/(\$\$.*?\$\$)/)
#[ 'Hello ',
# '$$user$$',
# ' your real name is ',
# '$$realname$$',
# '. Have a good day' ]
split()方法通过将字符串对象拆分为子字符串,将String对象拆分为字符串数组。
var example = "Hello $$user$$ your real name is $$realname$$. Have a good day"; var exSplit = example.split("$$"); var userIdx = exSplit.indexOf("user"); var nameIdx = exSplit.indexOf("realname"); document.querySelector(".user").innerHTML = exSplit[userIdx]; document.querySelector(".name").innerHTML = exSplit[nameIdx];
<div class="user"></div> <div class="name"></div>
但是,如果我建议的话,变量可以处理这种类型的操作,而无需所有麻烦。
是的,这可以通过JavaScript本身实现...有点棘手,但是可以。
var strings = [], tokens = []; var str = "Hello $$user$$ your real name is $$realname$$. Have a good day".replace(/\\$\\$(.*?)\\$\\$/g, "\\$\\$TOKEN$1\\$\\$").split("$"); for (var i = 0; i < str.length; i++) { if (str[i].indexOf("TOKEN") === 0) { // This is a token. tokens.push(str[i].replace("TOKEN", "")); } else { strings.push(str[i]); } } str = str.map(function (v) { if (v.indexOf("TOKEN") === 0) return "$$" + v.replace("TOKEN", "") + "$$"; return v; }); console.log(str); console.log(strings); console.log(tokens);
上面的代码会将所有内容拆分为令牌。 最重要的是,它还将字符串和标记分离出来。 以上是根据您的要求给出的:
[
"Hello ",
"$$user$$",
" your real name is ",
"$$realname$$",
". Have a good day"
]
请注意,没有什么像{value, value}
,只有[value, value]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.