2011-08-17 16 views
6

chcę zastąpić wszystkie occurent z "-", ":" znaków i spacji z ciągu znaków, który pojawia się w następującym formacie:javascript zastąpić znaki

"YYYY-MM-DD HH:MM:SS" 

coś podobnego:

var date = this.value.replace(/:-/g, ""); 

Odpowiedz

7

Ty były blisko: "YYYY-MM-DD HH:MM:SS".replace(/:|-/g, "")

+0

jeśli chcę spacje zbyt>? –

+1

'" RRRR-MM-DD GG: MM: SS ".replace (/ \ s |: | -/g," ")'. '|' Oznacza "LUB". –

+0

'/: | - |/g'. Po prostu pijesz kolejnego. Ale wybrałbym rozwiązanie @ Rocket, jeśli masz więcej postaci, ponieważ wygląda lepiej –

2

/:-/g oznacza ":" followed by "-". Jeśli umieścisz znaki w [], oznacza to ":" or "-".

var date = this.value.replace(/[:-]/g, ""); 

Jeśli chcesz usunąć spacje, dodaj wyrażenie \s do regex.

var date = this.value.replace(/[\s:-]/g, ""); 
1

regex chcesz to prawdopodobnie:

/[\s:-]/g 

Przykład użycia:

"YYY-MM-DD HH:MM:SS".replace(/[\s:-]/g, ''); 

[] bloki pasuje do żadnego z zawartych znaków.

Wewnątrz niej dodałem wzór \s pasujący znaki przestrzeni, takich jak przestrzeń i karcie \t (nie wiem, czy chcesz karty i nowe linie, więc poszedłem z kartami i pominięte znaki nowej linii).

Wygląda na to, że zgadłeś, że chcesz dopasować partię, która pozwala regexowi na zastępowanie znalezionych dopasowań.

1

Można użyć klasy znaku lub | (lub):

var date = "YYYY-MM-DD HH:MM:SS".replace(/[:-\s]/g, ''); 

var date = "YYYY-MM-DD HH:MM:SS".replace(/:|-|\s/g, ''); 
Powiązane problemy