2009-07-27 3 views
9

문자열의 일부와 일치 시키려하고 있는데 대소 문자를 구분하지 않아야합니다. 나는 다음과 같은 코드를 가지고 있지만 교체 된 문자열을 결코 얻지 못한다.JavaScript 정규식 무시 사례

var name = 'Mohammad Azam' 
var result = name.replace('/' + searchText + '/gi', "<b>" + searchText + "</b>"); 

검색 텍스트 변수는 "모하"또는 "모"또는 "MOH"입니다.

일치하는 것을 어떻게 볼드체 태그로 가져올 수 있습니까?

var name = 'Mohammad Azam', searchText='moha'; 

var result = name.replace(new RegExp(searchText, 'gi'), "" + searchText + ""); result 

편집 : : -

+0

무엇 당신이 검색 텍스트를 바꾸시겠습니까? 리터럴 문자열 'searchText'또는 다른 뭔가? – SolutionYogi

답변

20

/패턴 신경 끄시 고, 찾고 있던 아마 것입니다. (나는 100 % 확실하지 않다.)

var name = 'Mohammad Azam'; 
var searchText = 'moha'; 
var result = name.replace(new RegExp('(' + searchText + ')', 'gi'), "<b>$1</b>"); 
//result is <b>Moha</b>mmad Azam 

편집을 시도해보십시오

추가 위의 코드에 대한 데모 페이지.

Demo →

Code

+1

** 괄호로 RegExp를 구성하지 않아도됩니다 –

+1

그는 일치 항목을 캡처하여 태그로 묶으려고합니다. 괄호없이 캡처 할 수 없습니다. – SolutionYogi

+0

예. 검색 문자열이 주변 태그 대체 sans와 동일한 경우 가능합니다. –

3

내가 동적 정규 표현식을 만들어 새 정규식을 찾고 있다고 생각 당신이 지금하려는 것은 (아닌 정규 표현식 객체) 문자열을 일치 사실 이것은 당신이이 문자로 넣을 때/당신이 그와 같은 문자열을 구성하지 않을 경우 의미가 있습니다^

var name = 'Mohammad Azam', searchText='moha'; 
name.match(new RegExp(searchText , 'gi'))[0] 
name // "Moha" 
+0

ㅎ, 나는 당신이 찾고 있던 것과 혼돈 스러웠다. –

+0

처음으로 옳았습니다. 일치하지 않는 코드를 대체했습니다 –

관련 문제