Javascript разделить вопрос о регулярных выражениях - PullRequest
94 голосов
/ 24 августа 2010

Здравствуйте, я пытаюсь сделать то, что, как мне показалось, было бы довольно простым выражением в Javascript, но доставляет мне много хлопот. Я хочу, чтобы возможность разбить дату с помощью расщепления javascript либо по '-', '.', '/' И ''.

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

Какое правильное регулярное выражение для этой любой и вся помощь будет здорово.

Ответы [ 6 ]

145 голосов
/ 24 августа 2010

Вам нужно поместить символы, на которые вы хотите разделить, в класс символов , который сообщает механизму регулярных выражений «любой из этих символов совпадает». Для ваших целей это будет выглядеть так:

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

Несмотря на то, что штрихи имеют особое значение в классах символов как спецификатор диапазона (т. Е. [a-z] означает то же самое, что и [abcdefghijklmnopqrstuvwxyz]), если вы поставите его в качестве последнего элемента в классе, оно будет означать буквальную черту и не нужно убегать.

Чтобы объяснить, почему ваш шаблон не работал, /-./ сообщает механизму регулярных выражений, чтобы он соответствовал буквальному символу тире, за которым следует любой символ ( точки - это символы подстановки в регулярных выражениях). С "25-25-2010" он будет разделяться каждый раз, когда встречается "-2", потому что тире совпадает, а точка соответствует "2".

7 голосов
/ 13 ноября 2013

или просто (все, кроме чисел):

date.split(/\D/);
6 голосов
/ 23 января 2012

вы можете просто использовать

date.split(/-/);

или

date.split('-');
4 голосов
/ 21 августа 2013

Затем разбейте его на что угодно, кроме чисел:

date.split(/[^0-9]/);
2 голосов
/ 21 января 2019

Скажите, что ваша строка:

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());
0 голосов
/ 20 мая 2015

или просто используйте для строк даты 2015-05-20 или 2015.05.20

date.split(/\.|-/);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...