2012-09-13 4 views
2

나는이 길이가 길어서 SO으로오고 char 수를 설정하려고합니다. 그러므로 나는 expereion을 문자열로 만들어야하고 new RegExp()을 사용해야합니다. 그래서 스 니펫을 조금 변경하고 두 번째는 당신이 결과를 볼 수있는 새로운 RegExp 객체JavaScript 정규식 리터럴 대 RegExp 객체

orginal 한

var t = "this is a longish string of text"; 
t.replace(/^(.{11}[^\s]*).*/, "$1"); 

//result: 
"this is a longish" 

정규식

var t = "this is a longish string of text"; 
var count = 11; 
t.replace(new RegExp('^(.{' + count + '}[^\s]*).*'), "$1"); 

//result: 
"this is a longi" 

로를 사용 기대하지 않았다. 어떤 힌트는 리터럴을 사용하는 것과 RegExp 객체를 사용하는 것의 차이점은 무엇입니까?

new RegExp('^(.{' + count + '}[^\\s]*).*') 

(당신이 대신 [^\s]\S을 사용할 수 있습니다) :

new RegExp('^(.{' + count + '}\\S*).*') 
문자열에서

답변

6

, 당신은 백 슬래시를 이스케이프 할 필요가
관련 문제