簡體   English   中英

Javascript 從具有負值的字符串中提取數字和運算符

[英]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.

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