2014-03-26 5 views
0

다양한 html 태그가 포함 된 문자열이 있습니다. 예를 들어 :문자열을 검색하고 일치하는 숫자를 검색하는 자바 스크립트

var str = "<div>My text is <a> here</a> and it is <a> very wonderful</a>. For an example of how very great <a> my text is</a>. Please have a look</div>" 

나는 태그 (이 경우 앵커)의 내부에 있지 만 단어를 대체하는 자바 스크립트하려면 string.replace()를 사용하고 싶습니다. 또한 사용자 입력에 따라 달라 지므로 RegExp에 변수를 포함해야합니다. 나는 먼저 string.match()로 테스트하고있다. 내가 한 번만 일치하는지 확인합니다.

코드를 javascript regex replace some words with links, but not within existing links에서 빌려서 .replace를 .match로 바꿨습니다.

그것은 나에게 형식 오류를 반환
var word = "very"; 
var regex = new RegExp("/" + word + "(?![^<]*?<\/a>)/g"); 
console.log(str.match(regex).length); 

: titleText.match (...)이 더 일치가 발견되지 나에게 제안 널 그래서 나는 다음과 같은 코드를 사용합니다. 그러나 이런 식으로 작성하면

console.log(str.match("/very(?![^<]*?<\/a>)/g").length); 

결과가 예상됩니다. 이 경우, 1;

제안 사항?

+0

* 어떤 제안하는 * 그래, 당신이 그들을 식별 할 HTML을 포함하는 거의 모든 경우에, 사용하지 않는 정규식. – alex

+1

RegEx를 사용하여 HTML을 구문 분석 하시겠습니까? 좋은 결과 내길 바랄 게. –

+0

'새로운 RegExp (word + '(?! <]*?<\/a>)', 'g')'는 정규 표현식으로 사물을 연결할 때'RegExp()'형식입니다. – PHPglue

답변

2

문자열로 정규식을 구축 할 때 슬래시를 포함하지 마십시오 :

var regex = new RegExp(word + "(?![^<]*?<\/a>)","g"); 
관련 문제