簡體   English   中英

用運算符將​​數字分割成字符串

[英]split a string with numbers with operations

我如何分割一個字符串,如

'11+4+3'變成['11', '+', '4', '+', '3']嗎?

甚至將

[1, 1, '+', 4, '+', 3]變成[11, '+', 4, '+', 3]嗎?

用正則表達式分割字符串

/[^0-9]/g 

將拆分為我想要的數字,但將刪除操作值。 我需要一種方法來保留操作值。 我也知道字符串的eval()會自動將字符串值添加到數字值中,但是我試圖弄清楚如何在不使用eval()情況下添加數字和操作字符串。

var str = "11+3+4";    
console.log(str.split(/(\+)/));

輸出:

["11", "+", "3", "+", "4"]
function parseAsParts(input) {

  if (input instanceof Array) {
    input = input.join('');
  }
  var retVal = [];
  var thisMatch = null;
  var partSearch = /(\d+|[+-=])/g;
  while (thisMatch = partSearch.exec(input)) {
    retVal.push(thisMatch[0]);
  }
  return retVal;
}

那似乎得到您想要的。 您可以在正則表達式中帶有“ +-=”的位置添加更多字符。 但是,它不會驗證字符串是否具有所需的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM