鍍金池/ 問答/HTML5  HTML/ 怎么截取不規(guī)則字符串

怎么截取不規(guī)則字符串

例如我有一個1232{按鈕1}{按鈕2}765432這樣動態(tài)的字符串(長度不固定)我怎么拿到1231和{按鈕1},{按鈕2},765432?

回答
編輯回答
歆久

你再怎么樣也需要有一個具體的規(guī)則來說明內(nèi)容如何區(qū)分的啊,比如
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);
2017年3月28日 07:12
編輯回答
尐懶貓
  var a='1232{按鈕1}{按鈕2}765432'
    console.log(a.replace(/{/,',{').replace(/}/g,'},').split(','),'9999');

輸出
圖片描述

2018年8月23日 01:54
編輯回答
哚蕾咪
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)
2018年6月15日 23:47