我想在匹配的字符(广告)后面打印以下字符,但我不知道如何将其称为参数,有什么帮助吗?
$(document).ready(function(){
$("#ta_1").keyup(function(event) {
var text2 = $(this).val();
text2 = text2.replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$2");
$("#ta_1").val(text2);
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<textarea id="ta_1" rows="5" cols="28" ></textarea>
</body>
</html>
有几种方法可以做到这一点,您的代码非常接近其中之一;你只需要移除$1
。另一个解决方案是捕获而不是向前看。
"adoadR".replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$1"); // #0: "D$1oD$1R"
"adoadR".replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D"); // #1: "DoDR"
"adoadR".replace(/ad(a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$1"); // #2: "DoDR"
为了进一步优化,您还应该将该替换折叠为一个字符类:
"adoadR".replace(/ad(?=[aıouRTSBqYLĞID])/g, "D"); // #3: "DoDR"
"adoadR".replace(/ad([aıouRTSBqYLĞID])/g, "D$1"); // #4: "DoDR"
由于捕获是昂贵的,我建议你不要这样做,因为你不需要它
我的#3是最好的解决方案。