ค้นหาเว็บไซต์

node.js - RegEx ของ Javascript สำหรับจับคู่จำนวนเต็มบวกและลบ


ฉันกำลังพยายามดึง จำนวนเต็มบวก และ จำนวนเต็มลบ จากสตริงที่ให้มา แต่สามารถดึงได้เฉพาะจำนวนเต็มบวกเท่านั้น

ฉันกำลังส่งสตริง "34,-10" เข้าไปในพารามิเตอร์ getNumbersFromString

ฉันกำลังได้รับ

ผลลัพธ์:

['34','10']

ผลลัพธ์ที่คาดหวังควรเป็น

[34,-10]

ฉันจะแก้ปัญหานี้ได้อย่างไร?

function getNumbersFromString(numberString){
  var regx = numberString.match(/\d+/g);
  return regx;
}

console.log(getNumbersFromString("34,-10"));

คำตอบ #1

คุณยังสามารถจับคู่สัญลักษณ์ - (อย่างน้อย 0 และมากที่สุด 1) ก่อนตัวเลข จากนั้นคุณสามารถใช้ map() เพื่อแปลงให้เป็นตัวเลขได้

function getNumbersFromString(numberString){
  var regx = numberString.match(/-?\d+/g).map(Number);
  return regx;
}

console.log(getNumbersFromString("34,-10"));

คำตอบ #2

ทำไมต้องใช้ regex ที่นี่ แล้ว split() และ map() ล่ะ

function getNumbersFromString(numberString){
  return numberString.split(',').map(Number)
}

console.log(getNumbersFromString("34,-10"));

หรือตัวอักษรนำเข้านั้นไม่ 'สะอาด' และมีข้อความด้วยหรือไม่?

บทความที่เกี่ยวข้อง