2009-06-30 3 views
1

자바 스크립트에서 정규 표현식을 사용하여 따옴표 (단일 또는 이중) 사이에있는 코드를 가져 오는 방법이 있습니까?자바 스크립트에서 regexp로 따옴표 밖의 코드 가져 오기

내가이 문자열이있는 경우 :

'this is a test "this shouldn't be taken"' 

결과가 있어야한다 :

'this is a test' 
+1

귀하의 문자열이 때문에에 견적의 유효하지 않은는 – Alsciende

+1

결과는 끝에 공간 '이 테스트는'해야한다 "안된다" 안 그래? – Alsciende

+0

나는 하나 또는 큰 따옴표 사이에 쓰지 않지만 솔루션은 작은 따옴표로 묶여 있다고 추측합니다. –

답변

1
myString.replace(/".*?"/g, '') 

이 mystring에에서 큰 따옴표 사이의 문자열을 제거합니다. 그러나 이스케이프 처리 된 큰 따옴표는 처리하지 않습니다.

0

당신은 자바 스크립트 replace 기능을 사용하여 문자열의 인용 부분을 제거 할 수 있습니다 :이 작은 따옴표 나 큰 따옴표 사이에 아무 것도 제거해야

str = 'this is a test "this shouldn\'t be taken"'; 
str_without_quotes = str.replace(/(['"]).*?\1/g, "") // => 'this is a test ' 
+0

좋은 답변이지만 문자열에 줄 바꿈이 있으면 작동하지 않습니다. – Prestaul

2

, 그것은 여러 줄 문자열 (포함 된 문자열과 함께 작동 \ n 또는 \ R)과도 이스케이프 처리해야 따옴표 :

var removeQuotes = /(['"])(?:\\?[\s\S])*?\1/g; 

var test = 'this is a test "this shouldn\'t be taken"'; 
test.replace(removeQuotes, ""); // 'this is a test ' 

test = 'this is a test "this sho\\"uldn\'t be taken"'; 
test.replace(removeQuotes, ""); // 'this is a test ' 
관련 문제