자바 스크립트를 정규식 함수로 바꾸면 코드를 반환 할 때 항상 반환 URL의 끝에 "여분의 큰 따옴표가 있습니다."라고 경고하면 .Javascript replace w 끝 부분에 따옴표를 추가하는 Regex
<div class="postbody">
<a class="postlink" href="http://www.mystore.co.uk/product/upc0009384775/?referral=us-store&"">Faux Leather Deluxe Heated Seat Cushion</a>
</div>
나는 많은 것들을 시도했지만, 수 없습니다 :) 견적 내가 함수에서 링크를 반환하는 경우에만 표시되지 않는 URL는 결과 HTML은
<div class="postbody">
<a href="http://www.mystore.com/product/upc0009384775" class="postlink">Faux Leather Deluxe Heated Seat Cushion</a>
</div>
<script>
var elements = document.getElementsByClassName('postbody');
for (var i=0;i<elements.length;i++)
{
elements[i].innerHTML = elements[i].innerHTML.replace(/\"((?:http:\/\/|http:\/\/www.)mystore.)([a-zA-Z.]{2,5}\/)(product\/)([A-Za-z0-9]*)/gi,
function(match,match2,match3,match4,match5)
{
return match2+'co.uk'+'/'+match4+match5+'/?referral=us-store&';
}
);
}
</script>
입니다
여기에 보이는 코드를 슈퍼 단순화 한 후에도 알아낼 수 있습니다.도움 주셔서 감사합니다.
하지만 내가 교체있어 텍스트에 종료 견적을 추가/교체 아니에요, 그래서 왜 일을 추가? 또한 일부 링크는 'upc0009384775'다음에 텍스트와 변수가 더 많으므로 끝 인용 부호와 일치하면 정규식이 작동하지 않습니다. http://jsfiddle.net/UQ3u9/ –
_adding_ 하나가 아닙니다. _you_가 이미 존재하는 것을 떠나고 있습니다. – CBroe
나는 내 대답 마이크를 업데이트했다. – Dan