簡體   English   中英

在javascript中用逗號分割字符串中的字符

[英]Split characters in a string with a comma in javascript

我正在嘗試編寫一個正則表達式函數,該函數返回逗號分隔字符串中的所有數字:

function printDigits() {
   var result = sentence.replace(/[^0-9]/g, '').split(",")
    console.log(result)
}

但它只是打印出一個字符串,而不是用逗號分隔的數字。 有什么辦法可以解決這個問題嗎?

輸入:“5om3 wr173 w0rd5 u51n9 numb3r5。”

預期輸出:“5,3,1,7,3,0,5,5,1,9,3,5”

split不是這樣工作的。 它按輸入中已有的分隔符進行拆分。 要將字符串拆分為單個字符,請使用split('') ,然后用逗號連接單個字符:

   var result = sentence.replace(/[^0-9]/g, '').split('').join(',');

您可以使用

sentence.match(/\d/g).join(",")

這里,

  • sentence.match(/\\d/g) - 從字符串中提取每個單獨的數字
  • .join(",") - 將數組項連接成一個逗號分隔的字符串。

請參閱 JavaScript 演示:

 var sentence = "5om3 wr173 w0rd5 u51n9 numb3r5."; console.log(sentence.match(/\\d/g).join(",")); // -> 5,3,1,7,3,0,5,5,1,9,3,5

這是另一個使用純正則表達式並且不需要.join()調用的變體:

sentence.replace(/\D+|(\d)(?=\d)/g, '$1,');

這將用逗號替換任何非數字字符字符串。 它還會定位兩個數字之間的位置並在它們之間添加一個逗號。

模式分解:

  • \\D+ - 匹配一個或多個非數字字符。
  • | - 要么...
  • (\\d) - 匹配一位數字並將其捕獲在第 1 組中。
  • (?=\\d) - 后跟另一個數字。
  • 替補:
    • $1, - 替換$1,組中捕獲的任何內容,加上一個逗號。

這是一個完整的演示:

 var sentence = "5om3 wr173 w0rd5 u51n9 numb3r5"; var result = sentence.replace(/\\D+|(\\d)(?=\\d)/g, '$1,'); console.log(result); // 5,3,1,7,3,0,5,5,1,9,3,5

減速機解決方案

 const x = `5om3 wr173 w0rd5 u51n9 numb3r5` .split('') .reduce((acc, val) => val.trim().length && !isNaN(+val) ? [...acc, +val] : acc, []); console.log(`${x}`);

或者干脆

 console.log(`${`5om3 wr173 w0rd5 u51n9 numb3r5`.match(/\\d/g)}`);

暫無
暫無

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

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