[javascript] 자바 스크립트 분할 정규식 질문

안녕하세요 Javascript에서 다소 쉬운 정규식이라고 생각한 것을 시도하고 있지만 많은 문제를 일으키고 있습니다. ‘-‘, ‘.’, ‘/’및 ”로 자바 스크립트 분할을 통해 날짜를 분할하는 기능을 원합니다.

var date = "02-25-2010";
var myregexp2 = new RegExp("-.");
dateArray = date.split(myregexp2);

이것에 대한 올바른 정규식은 무엇이며 모든 도움이 될 것입니다.



답변

문자 클래스 에 분할하려는 문자를 넣어야합니다.이 문자 는 정규 표현식 엔진에 “이 문자 중 하나라도 일치합니다”라고 알려줍니다. 목적에 따라 다음과 같이 표시됩니다.

date.split(/[.,\/ -]/)

대시는 문자 클래스에서 범위 지정자 (즉 [a-z],와 같은 의미)로 특별한 의미를 갖지만 클래스 [abcdefghijklmnopqrstuvwxyz]의 마지막 항목으로 넣으면 리터럴 대시를 의미하는 것으로 간주되며 이스케이프 할 필요가 없습니다.

패턴이 작동하지 않는 이유를 설명하기 위해 /-./는 리터럴 대시 문자 다음에 임의의 문자를 일치 시키도록 정규식 엔진에 지시합니다 ( 은 정규식에서 와일드 카드 문자입니다). “02-25-2010″을 사용하면 대시가 일치하고 점이 “2”와 일치하기 때문에 “-2″가 나타날 때마다 분할됩니다.


답변

또는 그냥 (숫자를 제외한 모든 것) :

date.split(/\D/);


답변

당신은 그냥 사용할 수 있습니다

date.split(/-/);

또는

date.split('-');


답변

그런 다음 숫자가 아닌 다른 것으로 분할합니다.

date.split(/[^0-9]/);


답변

문자열이 다음과 같다고 말하십시오.

let str = `word1
word2;word3,word4,word5;word7
word8,word9;word10`;

다음 구분 기호로 문자열을 분할하려고합니다.

  • 콜론
  • 세미콜론
  • 새로운 라인

다음과 같이 문자열을 분할 할 수 있습니다.

let rawElements = str.split(new RegExp('[,;\n]', 'g'));

마지막으로 배열의 요소를 트리밍해야 할 수 있습니다.

let elements = rawElements.map(element => element.trim());


답변

또는 날짜 문자열 2015-05-20 또는 2015.05.20에만 사용하십시오.

date.split(/\.|-/);


답변

대신 이것을 시도하십시오

date.split (/ \ W + /)