JavaScript를 사용하여 문자열에서 큰따옴표 사이의 텍스트를 추출하는 방법을 알아보세요.
텍스트 블록에서 인용된 텍스트를 가져오고 싶다고 가정해 보겠습니다. 따옴표는 일반적으로 큰따옴표(" "
). 문제 없습니다. JavaScript의 match()
를 사용할 수 있습니다. 메소드 및 일부 RegEx 마술.
다음은 textWithQuote
라는 변수에 할당하는 하나의 큰따옴표 문장을 포함하는 텍스트 블록(문자열 값)입니다. :
const textWithQuote =
'One of my favorite quotes is "First we make our habits, then our habits make us". This quote is sometimes attributed to John Dryden, or other authors.'
이제 match()
를 첨부하겠습니다. 메소드를 변수에 전달하고 다소 횡설수설해 보이는 인수 /(?:"[^"]*"|^[^"]*$)/)[0].replace(/"/g, ""
(죄송합니다):
const extractQuote = textWithQuote
.match(/(?:"[^"]*"|^[^"]*$)/)[0]
.replace(/"/g, "")
그리고 결과를 인쇄하십시오:
console.log(extractQuote)
// "First we make our habits, then our habits make us"
[0]
를 사용하는 이유 그렇지 않으면 반환된 문자열이 중복됩니다. [0]
사용 첫 번째(하나의) 결과만 반환하도록 지정합니다.
replace()
를 사용하는 이유 메소드(.replace(/"/g, "")
) 그렇지 않으면 반환된 결과에 초과 따옴표가 포함됩니다(이미 따옴표가 있는 문자열 내부에 따옴표로 묶인 텍스트를 반환하기 때문).
split()을 사용하는 대체 방법
split()
를 사용하여 큰따옴표로 묶인 텍스트 값을 얻을 수도 있습니다. 방법:
const textWithQuote =
'One of my favorite quotes is "First we make our habits, then our habits make us". This quote is sometimes attributed to John Dryden, or other authors.'
console.log(textWithQuote.split('"')[1])
// "First we make our habits, then our habits make us"
이 경우 두 번째 결과를 반환하도록 지정해야 합니다. [1]
[0]
때문에 One of my favorite quotes is
를 반환합니다. .
[2]
를 지정하는 경우 , 두 번째 "
바로 뒤에 다음 텍스트가 표시됩니다. 큰따옴표.
정규 표현식 주제에 대해 최근에서야 깊이 파고들기 시작했기 때문에 어느 방법을 언제 사용해야 하는지, 장단점이 무엇인지 잘 모르겠습니다.