例如我有一个1232{按钮1}{按钮2}765432这样动态的字符串(长度不固定)我怎么拿到1231和{按钮1},{按钮2},765432?
你再怎么样也需要有一个具体的规则来说明内容如何区分的啊,比如1232{按钮1}{按钮2}765432
则/^(\d+)(\{按钮\d\})(\{按钮\d\})(\d+)$/
可以从捕获的子匹配项上获取各个部分。例如
var re=/^(\d+)(\{按钮\d\})(\{按钮\d\})(\d+)$/;
var rtall=re.exec("1232{按钮1}{按钮2}765432");
console.log(rtall);
let str = "1232{按钮1}{按钮2}765432"
function trans (str) {
let count = 0
let matched = []
let subStr = ''
for (let i = 0, len = str.length; i < len; i++) {
let cur = str[i]
if (cur === '{') {
if (count === 0) {
if (subStr.length) matched.push(subStr)
subStr = cur
} else {
subStr += cur
}
count++
} else if (cur === '}') {
subStr += cur
count--
if (count === 0) {
matched.push(subStr)
subStr = ''
}
} else {
subStr += cur
}
}
if (subStr.length) matched.push(subStr)
return matched
}
trans(str)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
输出
