這個問題在這里已經有了答案: 我如何在javascript中只獲得數字[重復] 7個答案 47 分鐘前關閉。
我想使用一個正則運算式來洗掉與正則運算式不匹配的字串值。
我在一個名為 innerState.feedAmount 的物件中有一個字串值。如果您查看控制臺,innerState.feedAmount 的字串值為“123hi”。
此時,我的正則運算式是一個正則運算式,它只允許一個小數點和一個數字形式的字串值。
如果它與這個正則運算式不匹配,我想使用替換來洗掉與正則運算式不匹配的值并將其放入答案中。但是當我使用我的代碼時,它沒有過濾就出來了
這是我的代碼
我該如何修復我的代碼?
console.log("innerState.feedAmount:", innerState.feedAmount)
// "innerState.feedAmount: 123hi
if(!/(^[0-9] $)|(^[0-9] \.?[0-9] )$/g.test(innerState.feedAmount)) {
const hi = innerState.feedAmount;
const answer = hi.replace(!/(^[0-9] $)|(^[0-9] \.?[0-9] )$/g, " ")
console.log("answer:",answer);
// anwser: 123hi
// expecter answer is answer 123
}
uj5u.com熱心網友回復:
您可以嘗試使用該模式/[^\d\.]/g來獲得所需的答案:
let regex = /[^\d\.]/g;
// Test different values...
let feedAmounts = ['123hi', '123.45hi', '125a', 'foo22'];
console.log('Input'.padEnd(10, ' '), 'Output');
for(let feedAmount of feedAmounts) {
let innerState = {
feedAmount
}
if(regex.test(innerState.feedAmount)) {
const hi = innerState.feedAmount;
const answer = hi.replace(regex, "")
console.log(feedAmount.padEnd(10, ' ') , answer);
}
}
.as-console-wrapper { max-height: 100% !important; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494247.html
標籤:javascript 节点.js 反应 正则表达式
下一篇:將字串格式化為另一種字串格式
