亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅當它之前有數值時才替換的正則表達式

僅當它之前有數值時才替換的正則表達式

白衣染霜花 2023-06-15 09:40:22
我想寫一個正則表達式來用下劃線替換x和值,只有當它被數字包圍,或者前面或后面有數字時。X_xX例如:OFE_PALLET_120X92 will be OFE_PALLET_120_92OFX_PALLET_120X92 will be OFX_PALLET_120_92這是我的初始代碼:sRegExInput = new RegExp('[xX]', 'g');result =    result.replace(sRegExInput ,'_');如何實現?
查看完整描述

3 回答

?
繁星coding

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的是捕獲的子串。


查看完整回答
反對 回復 2023-06-15
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您可以使用以下正則表達式:

"OFX_PALLET_120X92".replace(/(\d)x/ig, "$1_")
// "OFX_PALLET_120_92"

本質上,它找到一個數字,捕獲它,然后找到一個X,并將其替換為捕獲的數字 ( $1) 和一個下劃線。


查看完整回答
反對 回復 2023-06-15
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

使用提供的正則表達式,我將模式匹配為:

  1. 查找一位或多位數字,

  2. 后跟xX

  3. 后跟一位或多位數字。

然后在替換語句中,我使用$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);

運行代碼片段來測試輸出:)



查看完整回答
反對 回復 2023-06-15
  • 3 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號