簡體   English   中英

JavaScript regex 替換兩組之間的空格

[英]JavaScript regex replace the space between two groups

我正在以編程方式修改包含一些 HTML/JS 代碼的大型文本文件,並且需要“標記”兩個選擇器之間有空格的位置,例如 ID 和 className 之間,如 $('#btnOne .subElement')。 要找到這些,我需要一個 RegEx。 但是,我在替換位上失敗了。

RegEx101 Demo - 正確識別了我需要用標記(例如 $#$#$ 或其他東西)替換內部空間的兩個示例。 (這個 regex101 演示有什么問題是匹配整個子字符串,而不僅僅是中間的空格 - 這就是我需要替換的全部)

這是一個准備好替換的代碼片段,與上面的問題相同。

 $('button').click(function(){ var tmp = $('#orig').text(); tmp = tmp.replace("<br>", "\\n"); tmp = tmp.replace(/\\$\\(['"].+ .*\\)\\./gi,'<span>HOW_TARGET_ONLY_THE_SPACE_CHAR?</span>.'); $('#output').html(tmp); });
 #output{margin-top:10px;background:palegoldenrod;} span{color:brown;font-weight:bold;}
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="orig"> function initSxsChartBtns(){<br> var oneBtnIsAlreadyClicked = false; $('#databuttons button').each(function(){ if ( $(this).hasClass('btn_DEPRESSED') ) oneBtnIsAlreadyClicked = true; }); if (!oneBtnIsAlreadyClicked){ $('#txtAdvisory').val('Approximately 25% are registered.'); $('#btnOne .subElement').addClass('btn_DEPRESSED'); $('#btnTwo.sameElement').addClass('btn_DEPRESSED'); } } </div> <button>RegEx Replace</button> <div id="output"></div>

你可以這樣做:

tmp = tmp.replace(/(\$\(['"].+) (.*\)\.)/gm, '$1abc$2');

這里$1$2用於指代 RegExp 中的捕獲組。 我嘗試盡可能少地更改您的 RegExp,我添加的只是用於創建捕獲組的括號。

replace還允許您將函數作為第二個參數傳遞,從而更精確地控制替換。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM