[英]Javascript extract numbers and operators from string with negative values
我有下一個輸入: 8+9
我想在單獨的 arrays 中提取數字和運算符,我有下一個代碼:
const numbers = input.split(/\D/g).filter(Boolean);
console.log("numbersBeforeFilter:", numbers);
const op = input.split(/\d/g).filter(Boolean);
在數字上我有["8", "9"]
在運算符中: ["+"]
沒關系,但是如果我有例如下一個表達式:-7,我有下一個結果:
我有["7"]
在運算符中: ["-"]
這是錯誤的,因為我必須在 numbers 數組中有 -7 並且運算符 1 為空。
有任何想法嗎?
您可以匹配包含前導的數字-
如果令牌前面是字符串的開頭或另一個運算符:
const parse = str => str.match(/(?<=^|[-+*/])\-\d+|\d+|[-+*/]/g); console.log( parse('8+9'), parse('-7'), parse('3*-5') );
(?<=^|[-+*/])\-\d+
- 匹配破折號和前面的數字
^
- 字符串的開頭,或按[-+*/]
- 任意字符-+*/
\d+
- 或匹配數字[-+*/]
- 或匹配運算符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.