답변:
문자 클래스 에 분할하려는 문자를 넣어야합니다.이 문자 는 정규 표현식 엔진에 "이 문자 중 하나라도 일치합니다"라고 알려줍니다. 목적에 따라 다음과 같이 표시됩니다.
date.split(/[.,\/ -]/)
대시는 문자 클래스에서 범위 지정자 (즉 [a-z]
,와 같은 의미)로 특별한 의미를 갖지만 클래스 [abcdefghijklmnopqrstuvwxyz]
의 마지막 항목으로 넣으면 리터럴 대시를 의미하는 것으로 간주되며 이스케이프 할 필요가 없습니다.
패턴이 작동하지 않는 이유를 설명하기 위해 /-./
는 리터럴 대시 문자 다음에 임의의 문자를 일치 시키도록 정규식 엔진에 지시합니다 ( 점 은 정규식에서 와일드 카드 문자입니다). "02-25-2010"을 사용하면 대시가 일치하고 점이 "2"와 일치하기 때문에 "-2"가 나타날 때마다 분할됩니다.
문자열이 다음과 같다고 말하십시오.
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(/\.|-/);