javascript正则表达式替换两个组之间的空格

时间:2017-09-10 22:23:08

标签: javascript regex

我正在以编程方式修改包含一些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);
});
&#13;
#output{margin-top:10px;background:palegoldenrod;}
span{color:brown;font-weight:bold;}
&#13;
<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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

你可以这样做:

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