3 回答

TA貢獻1797條經驗 獲得超4個贊
\\d在構造函數中使用:
var result = 'OFE_PALLET_120X92 will be OFE_PALLET_120_92';
var sRegExInput = new RegExp('(\\d)x', 'gi');
result = result.replace(sRegExInput ,'$1_');
console.log(result);
解釋
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
\d digits (0-9)
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
x 'x' or 'X' due to i flag
指$1的是捕獲的子串。

TA貢獻1806條經驗 獲得超5個贊
您可以使用以下正則表達式:
"OFX_PALLET_120X92".replace(/(\d)x/ig, "$1_") // "OFX_PALLET_120_92"
本質上,它找到一個數字,捕獲它,然后找到一個X
,并將其替換為捕獲的數字 ( $1
) 和一個下劃線。

TA貢獻1798條經驗 獲得超7個贊
使用提供的正則表達式,我將模式匹配為:
查找一位或多位數字,
后跟
x
或X
后跟一位或多位數字。
然后在替換語句中,我使用$1
來替換第一組找到的數字,并使用 來$3
替換最后一組找到的數字。
變量map
中的entries
只是為了簡化代碼。這與正則表達式無關。
var entries = [
'OFE_PALLET_120X92',
'OFX_PALLET_120X92'
];
var result = entries.map(
function(entry) {
return entry.replace(/(\d+)([xX])(\d+)/g ,'$1_$3');
}
);
console.log(result);
運行代碼片段來測試輸出:)
添加回答
舉報