programing

javascript를 사용하여 정규 표현 특수 문자를 피하는 방법

goodjava 2022. 10. 31. 21:16

javascript를 사용하여 정규 표현 특수 문자를 피하는 방법

자바 스크립트를 사용하여 정규 표현 특수 문자를 이스케이프해야 합니다.어떻게 하면 좋을까요?어떤 도움이라도 감사히 받겠습니다.


빠른 답변 감사합니다.하지만 나는 정규 표현의 모든 특수 문자에서 벗어나야 한다.나는 이 코드로 시도했지만, 나는 결과를 얻을 수 없다.

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)/는 임의의 공백과 일치하여 일치하는 내용을 캡처합니다.

출처 : http://www.javascriptkit.com/javatutors/redev2.shtml

언급URL : https://stackoverflow.com/questions/3115150/how-to-escape-regular-expression-special-characters-using-javascript