정규식 자바 스크립트에서 물음표 이스케이프
이것은 제 생각에 간단한 질문입니다.
다음과 같이 JavaScript에서 정규식을 사용하여 다른 문자열에서 문자열의 발생을 검색하려고합니다.
var content ="Hi, I like your Apartment. Could we schedule a viewing? My phone number is: ";
var gent = new RegExp("I like your Apartment. Could we schedule a viewing? My", "g");
if(content.search(gent) != -1){
alert('worked');
}
이것은 ?
캐릭터 때문에 작동하지 않습니다 .... 나는 그것을 이스케이프하려고 시도했지만 그것도 \
작동하지 않습니다. ?
특수 문자 대신 문자 그대로 사용하는 다른 방법이 있습니까?
두 개의 백 슬래시로 이스케이프해야합니다.
\\?
자세한 내용은 다음을 참조하십시오.
http://www.trans4mind.com/personal_development/JavaScript/Regular%20Expressions%20Simple%20Usage.htm
이중 슬래시를 사용해야합니다.
var regex = new RegExp("\\?", "g");
왜? JavaScript에서는 \
문자열에서 문자를 이스케이프하는데도 사용되므로 "\?" 된다 :"?"
그리고 "\\?"
,이된다"\?"
따옴표 대신 슬래시로 정규 표현식을 구분 한 다음 물음표를 이스케이프하기 위해 단일 백 슬래시로 구분할 수 있습니다. 이 시도:
var gent = /I like your Apartment. Could we schedule a viewing\?/g;
알려진 패턴 이있을 때마다 (즉, RegExp를 빌드하는 데 변수를 사용하지 않음) 특수 정규식 메타 문자를 이스케이프 하기 위해 단일 백 슬래시 만 사용하면되는 리터럴 정규식 표기법을 사용합니다 .
var re = /I like your Apartment\. Could we schedule a viewing\?/g;
^^ ^^
RegExp를 동적으로 빌드해야 할 때마다 리터럴 백 슬래시를 나타 내기 위해 이중 백 슬래시를 사용해야 하는 RegExp
생성자 표기법 을 사용하십시오 .
var questionmark_block = "\\?"; // A literal ?
var initial_subpattern = "I like your Apartment\\. Could we schedule a viewing"; // Note the dot must also be escaped to match a literal dot
var re = new RegExp(initial_subpattern + questionmark_block, "g");
반드시 읽어야 할 것 : RegExp : Description at MDN.
참고 URL : https://stackoverflow.com/questions/889957/escaping-question-mark-in-regex-javascript
'Nice programing' 카테고리의 다른 글
팬더 데이터 프레임 예쁜 인쇄 (0) | 2020.10.18 |
---|---|
'유효한 XML'과 '잘 형성된 XML'간에 차이점이 있습니까? (0) | 2020.10.18 |
SPAN의 높이 속성을 설정하는 방법 (0) | 2020.10.18 |
NoSQL 데이터베이스를 사용하는 전자 상거래 웹 사이트가 있습니까? (0) | 2020.10.18 |
has_and_belongs_to_many 대 has_many through (0) | 2020.10.18 |