안녕하세요 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 + /)