JavaScript에서 대소 문자를 구분하지 않는 정규식


121

JavaScript를 사용하여 URL에서 쿼리 문자열을 추출하고 쿼리 문자열 이름에 대해 대소 문자를 구분하지 않는 비교를 수행하고 싶습니다. 내가하는 일은 다음과 같습니다.

var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return 0; }
return results[1] || 0;

그러나 위의 코드는 대소 문자를 구분하는 검색을 수행합니다. 시도 /<regex>/i했지만 도움이되지 않았습니다. 어떻게 이룰 수 있을지 아십니까?


5
리터럴 형식 / regex / i 는 연결하려고하지 않는 한 작동합니다 ...
Alex

답변:


211

"대소 문자 무시"를 의미하는 'i'수정자를 추가 할 수 있습니다.

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);

2
내가 그것을 하나의 문자열로 만드는 방법은 무엇입니까?
추기경-Monica 복원

11
@CardinalSystem/abc/i
aross

42

수정자는 두 번째 매개 변수로 제공됩니다.

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")

또는new RegExp('^' + string + '$', "i")
Vadim

6

간단한 원 라이너. 아래 예에서는 모든 모음을 X로 바꿉니다.

function replaceWithRegex(str, regex, replaceWith) {
  return str.replace(regex, replaceWith);
}

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.