반응형
자바 스크립트를 사용하여 정규 표현식 특수 문자를 이스케이프 처리하는 방법은 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
java 스크립트를 사용하여 정규 표현식 특수 문자를 이스케이프 처리해야합니다. 어떻게 달성 할 수 있습니까? 도움이 필요합니다.
빠른 답변 주셔서 감사합니다. 그러나 정규 표현식의 모든 특수 문자를 이스케이프해야합니다.이 코드로 시도했지만 결과를 얻을 수 없습니다.
RegExp.escape=function(str)
{
if (!arguments.callee.sRE) {
var specials = [
'/', '.', '*', '+', '?', '|',
'(', ')', '[', ']', '{', '}', '\\'
];
arguments.callee.sRE = new RegExp(
'(\\' + specials.join('|\\') + ')', 'gim'
);
}
return str.replace(arguments.callee.sRE, '\\$1');
}
function regExpFind() {
<%--var regex = new RegExp("\\[munees\\]","gim");--%>
var regex= new RegExp(RegExp.escape("[Munees]waran"));
<%--var regex=RegExp.escape`enter code here`("[Munees]waran");--%>
alert("Reg : "+regex);
}
이 코드의 문제점은 무엇입니까?
\
정규식 내에서 특별한 의미가 있는 문자를 피 하려면 문자를 사용하십시오 .
자동화하려면 다음을 사용할 수 있습니다.
function escapeRegExp(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}
업데이트 : 이제 ES2016 에서이 방법을 표준화 할 제안이 있습니다 : https://github.com/benjamingr/RegExp.escape
업데이트 : 위에서 언급 한 제안이 거부되었으므로 필요한 경우 직접 구현하십시오.
문자를 이스케이프하려면 백 슬래시를 사용하십시오. 예를 들면 다음과 같습니다.
/\\d/
숫자 대신 \ d와 일치합니다.
함께 \
사용하면 특수 문자를 탈출
특수 문자를 리터럴로, 리터럴 문자를 특수로 이스케이프합니다.
예 : / (s) /는 '(s)'와 일치하고 / (\ s) /는 공백과 일치하고 일치를 캡처합니다.
반응형
'Programing' 카테고리의 다른 글
동일한 div에서 두 버튼 사이에 공백을 어떻게 만들 수 있습니까? (0) | 2020.06.14 |
---|---|
ASP.NET Core RC2 웹 API에서 HTTP 500을 반환하는 방법? (0) | 2020.06.14 |
Ruby 스크립트를 어떻게 디버깅합니까? (0) | 2020.06.14 |
SSH 세션에서 클라이언트의 IP 주소 찾기 (0) | 2020.06.14 |
나뭇 가지 템플릿에 HTML이 포함 된 문자열 표시 (0) | 2020.06.13 |