2
제공된 목록의 단어를 포함하는 트윗을 대문자와 소문자로 구분하는 잘못된 단어 필터를 만들려고합니다. 유일한 문제는 잘못된 단어 목록을 클라이언트 브라우저로 다운로드하지 않도록 간단한 단어 인코딩을하고 싶다는 것입니다. 내가 할 수있는 유일한 방법은 정규 표현식을 평가하는 것이다. 단, eval은 \ b가 포함 된 것으로 작동하지 않는 것 같습니다. 정규 표현식 r3과 r4를 아래에서 어떻게 구할 수 있습니까?단어 경계로 평가되는 정규 표현식
// encoded bad word list decoded to below
var badwordlist = 'Sam,Jimmy,Johnny';
var restr = badwordlist.split(',').join('|');
// this works
var r2 = /\b(Sam|Jimmy|Johnny)\b/i;
var ndx2 = "safads jimmy is cool".search(r2);
// these don't
var r3 = eval('/\b('+restr+')\b/i');
var ndx3 = "safads jimmy is cool".search(r3);
var r4 = new RegExp('\b('+restr+')\b','i');
var ndx4 = "safads jimmy is cool".search(r4);
alert(restr);
alert('ndx2:'+ndx2 +',ndx3:'+ndx3 + 'ndx4:'+ ndx4);
Ahhhh !!! 예!! 일했다! 상대적으로 JS와 새로운 그래서 지금은 얼마나 정확하게 나쁜 eval인지 깨닫기 시작했습니다! 감사! – dishwasher
사용할 때 [매우주의해야합니다] (http://stackoverflow.com/questions/4213800/is-there-something-like-counter-variable-in-regular-expression-replace/4214173#4214173) '\ b' 스타일은 정규 표현식에서 단어 경계를 나타냅니다. – tchrist
@tchrist : OP에 대한 의견을 보내 주어야한다고 생각합니다. 나는 단지 질문에 답하고있었습니다 :-) –