我想用正則運算式替換任何非數字字符和第一個之后的點,所以
“--r43dsd.32.32”將是 43.3232
“--r4.3dsd.32.3.2”將是 4.33232
“--r43dsd.32.3.2”將是 43.3232
我試過這個
.replace(/[^0-9.]/g, '')
但我不知道如何用替換和正則運算式洗掉點。我讀到我應該使用正則運算式,但我不明白該怎么做。
這是否可以僅通過正則運算式和替換來實作?我還創建了一個函式,但我想使用正則運算式以更簡潔的方式完成它。
uj5u.com熱心網友回復:
我知道這不是正則運算式,但你總是可以這樣做:
function getFloat(ourString) {
return ourString.replace(/[^0-9.]/g, '').substring(0, ourString.indexOf('.') 1) ourString.substring(ourString.indexOf('.') 1).replaceAll('.', '');
}
uj5u.com熱心網友回復:
這是一種基于正則運算式的方法,使用兩個步驟。首先,我們可以去掉所有不是數字或點的字符。然后,使用回呼函式,我們可以洗掉第一次出現以外的點。
var inputs = ["--r43dsd.32.32", "--r4.3dsd.32.3.2", "--r43dsd.32.3.2"];
for (var i=0; i < inputs.length; i) {
var output = inputs[i].replace(/[^0-9.] /g, "")
.replace(/([0-9] \.)(.*)/,
(m,n,o) => n o.replace(/[.]/g, ""));
console.log(output);
}
uj5u.com熱心網友回復:
let value = '"--r43dsd.32.32" would be 43.3232', i = 0;
value = value.replace(/[^0-9.]/g, '');
const result1 = value.replace(/[\.\%]/g, function(match) {
return match === "." ? (i === 0 ? '.' : '') : '';
});
// Here is a self-contained version with no external variables:
const result2 = value.replace(/[\.\%]/g, function(match, offset, all) {
return match === "." ? (all.indexOf(".") === offset ? '.' : '') : '';
});
console.log('result1', result1);
console.log('result2', result2);
uj5u.com熱心網友回復:
不要使用global屬性只找到第一個.,將其替換為x,將所有其他.s 更改為空字串,最后將 a 替換.為x。
s1="--r43dsd.32.32"; // 43.3232
s2="--r4.3dsd.32.3.2"; // 4.33232
s3="--r43dsd.32.3.2"; // 43.3232
s=[s1,s2,s3];
s.forEach((s)=>{s=s.replace(/[^0-9.]/g, '').replace(/\./, 'x').replace(/\./g, '').replace(/x/, '.');console.log(s);});
uj5u.com熱心網友回復:
在這種情況下,您可以使用正則運算式捕獲組來實作您的目標。第一個 '.' 之前的任何內容 可以稱為前綴,它之后的所有內容都可以稱為后綴。然后從前綴和后綴中洗掉每個非數字并連接字串。
let exp = /^(?<prefix>.*?)\.(?<suffix>.*)$/;
let input = "--r4.3dsd.32.32";
let groups = input.match(exp).groups;
console.log("prefix:", groups.prefix); // --r4
console.log("suffix:", groups.suffix); // 3dsd.32.32
console.log("full string:", groups.prefix.replace(/[\D] /g, '') '.' groups.suffix.replace(/[\D] /g, '')) // 4.33232
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420316.html
標籤:
