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);
运行代码片段来测试输出:)
添加回答
举报