Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript로 큰따옴표 사이의 텍스트를 추출하는 방법

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]를 지정하는 경우 , 두 번째 " 바로 뒤에 다음 텍스트가 표시됩니다. 큰따옴표.

정규 표현식 주제에 대해 최근에서야 깊이 파고들기 시작했기 때문에 어느 방법을 언제 사용해야 하는지, 장단점이 무엇인지 잘 모르겠습니다.