나는 문자열을 가지고 있고 나는 그들의 적절한 값으로 모든 '
등을 교체 할 필요가자바 스크립트를 찾아서 문자 집합을 바꾸시겠습니까?
내가 이렇게하려면
var replace = str.replace(new RegExp("[']", "g"), "'");
를 사용하고 있지만, 문제는 '
를 대체 할 것입니다 각 문자에 대해 (그래서 예를 들어, '
는 '''''
어떤 도움이됩니까?
나는 문자열을 가지고 있고 나는 그들의 적절한 값으로 모든 '
등을 교체 할 필요가자바 스크립트를 찾아서 문자 집합을 바꾸시겠습니까?
내가 이렇게하려면
var replace = str.replace(new RegExp("[']", "g"), "'");
를 사용하고 있지만, 문제는 '
를 대체 할 것입니다 각 문자에 대해 (그래서 예를 들어, '
는 '''''
어떤 도움이됩니까?
사용 이 :
var str = str.replace(/'/g, "'");
[']
은 문자 클래스입니다. 이것은 중괄호 안에있는 어떤 문자 이건 을 의미합니다.
/[']/
정규식이 '
의 모든 단일 문자를 대체 문자열로 대체하는 이유입니다.
대신 문자 정규식의 new RegExp
을 사용하려면
var str = str.replace(new RegExp(''', 'g'), "'");
이것은 당신이 런타임에 regexps '에를 생성 할 경우 제외 혜택을,이 없습니다. 문자 클래스를 만드는
두 가지 모두 "정규식이 아닌 리터럴의 종결되지 않음"오류가 발생하는 것 같습니다. – Steven
http://jsfiddle.net/TC5he/ – arnaud576875
브래킷을 꺼내, (그 안에 모든 문자가 일치) :
var replace = str.replace(/'/g, "'");
편집 :이 참조
var replace = str.replace(new RegExp("'", "g"), "'");
또는 더 나은을하는 리터럴 사용 HTML을 탈출하는 방법에 대한 질문 : How to unescape html in javascript?
두 가지 모두 "정규식이 아닌 리터럴을 종결하지 않았습니다." – Steven
@Steven How 당신이 그것을 사용하고 있습니까? –
대신이 정규 표현식을 사용하는 것보다는 다음과 같은 것을 할 것입니다. 브라우저가 당신을 위해 해독을 처리하게하십시오 :
function HtmlDecode(s) {
var el = document.createElement("div");
el.innerHTML = s;
return el.innerText || el.textContent;
}
+1 좋은 생각 ... 'delete el;'을 호출 할 필요는 없지만 (엄격한 모드에서는 아무런 효과가 없으며 오류가 발생합니다.) 당신은'return el.innerText ||를 할 수 있습니다. el.textContent; ' –
팁 주셔서 감사합니다. –
오류는'[]'을 사용하고 있습니다. 제거하면 작동합니다. 또는 arnaud가 제안한 것처럼 더 컴팩트 한 JS 표기법을 사용하십시오. – xanatos