Você precisa colocar os caracteres que deseja dividir em uma classe de caractere , que informa ao mecanismo de expressão regular "qualquer um desses caracteres é uma correspondência". Para seus propósitos, seria o seguinte:
date.split(/[.,\/ -]/)
Embora os traços tenham um significado especial nas classes de caracteres como um especificador de intervalo (ou seja, [a-z]
significam o mesmo que [abcdefghijklmnopqrstuvwxyz]
), se você colocá-los como a última coisa na classe, será considerado um traço literal e não precisa ser escapado.
Para explicar por que seu padrão não funcionou, /-./
diga ao mecanismo de expressão regular para corresponder a um caractere de traço literal seguido por qualquer caractere (os pontos são caracteres curinga em expressões regulares). Com "02-25-2010", ele se dividiria sempre que "-2" fosse encontrado, porque o traço corresponde e o ponto corresponde a "2".
ou apenas (qualquer coisa menos números):
fonte
você poderia apenas usar
ou
fonte
Em seguida, divida em qualquer coisa, menos em números:
fonte
Diga que sua string é:
Você deseja dividir a string pelos seguintes delimitadores:
Você pode dividir a string assim:
Por fim, pode ser necessário cortar os elementos da matriz:
fonte
ou apenas use para strings de data 20/05/2015 ou 20/05/2015
fonte
tente isso ao invés
date.split (/ \ W + /)
fonte