2014-04-28 1 views
3

HTML 속성 큰 따옴표를 작은 따옴표로 바꾸고 싶습니다. 예를 들어HTML 속성 값을 JavaScript의 정규 표현식으로 바꿉니다.

입력 인 경우 :

<a onclick="Track("http://www.example.com")">Track Me</a> 

가 출력 될 것이다 onclick="..."가로 대체되고 여기 만 변화 즉 onclick='Track("http://www.example.com")' 대체 될

여기
<a onclick='Track("http://www.example.com")'>Track Me</a> 

onclick="Track("http://www.example.com")" 필요 onclick='...'.

필자의 경우 콘텐츠는 JavaScript를 사용하여 클라이언트 측에서 콘텐츠를 정리해야하는 HTML 편집기에서 검색됩니다. 현재 내가 생각할 수있는 유일한 방법은 onclick 큰 따옴표 특성을 작은 따옴표 특성으로 바꾸려면 Regex을 사용해야하며 onclick 특성에 "트랙"기능이 사용될 때만 발생해야합니다. jsFiddle

내가 어떤 솔루션을 찾고 있어요 :

내가 좋아하는 뭔가를 시도했다. 어떤 도움을 주셔서 감사합니다.

감사합니다.

+1

올바르게 저장하기 위해 편집기를 수정할 방법이 있습니까? – Marty

+0

HTML은 단지 ** 잘못된 ** 것입니다. 원하는 편집기로 소스를 변경하십시오. –

+0

RegEx를 사용하여 HTML을 구문 분석해야한다는 사실은 잘못하고 있음을 의미합니다. – setec

답변

0

과 코드 위 변경할 수 있습니다. 여기에 우리가 간다 :

var str = '<a onclick="Track("http://www.example.com")">Track Me</a>'; 

console.log(str.replace(/onclick="Track\("([^"]+)"\)"/, 'onclick=\'Track("$1")\'')); 
+0

감사. 정규 표현식은 나에게서 작용했다. 나는 그것을 다음과 같이 수정했다.'/ onclick = "Track \ ("([\ s \ S] +) ") –

0

정규 표현식을 찾고 있다면이 예제를 사용할 수 있습니다. 그것은 당신에게 링크 데모 <a onclick="Track('http://www.example.com')">Track Me</a>

var s = '<a href="#" target="_blank" 
     onclick="Track("http://www.example.com/")">Test Link</a>'; 

var p = s.replace(/(onclick=")(.*)(\")/,function(match,prefix,handler,suffix){ 
    return prefix + handler.replace(/"/g,'\'') + suffix; 
}); 

console.log(p); 

그리고 fiddle을 줄 것이다;

나는 당신이 버전 <a onclick='Track("http://www.example.com")'>Track Me</a> 찾는 것을 보지 못했다, 그래서 당신은 그때 자신을 변경, 다른 사람을 변경 두지 못하는 경우에 당신은이 라인

var p = s.replace(/(onclick=")(.*)(\")/,function(match,prefix,handler,suffix){ 
    return prefix.replace(/"/,'\'') + handler + suffix.replace(/"/,'\''); 
}); 
관련 문제