2010-09-30 23 views

risposta

36
foo.replace(/,([^,]*)$/, ' and $1') 

utilizzare l'ancora $ (capolinea) per darvi la vostra posizione, e cercare un modello alla destra dell'indice virgola che non include ulteriori virgole.

Edit:

I lavori di cui sopra esattamente per i requisiti definiti (anche se la stringa di sostituzione è arbitrariamente sciolto), ma sulla base di critiche da commenti qui sotto meglio riflette lo spirito del requisito originale.

foo.replace(/,\s([^,]+)$/, ' and $1') 
+0

+1, probabilmente meglio di usare '\ w' come splash ha come è più inclusivo, ad esempio: http://jsbin.com/utedu/2 –

+0

Questo corrisponde anche a' test1, test2, 'e produce' test1, test2 e 'per questo. Inoltre inserisce un carattere di spazio ridondante per la stringa di input originale, perché si dimentica di far corrispondere il carattere dello spazio dopo ','. – splash

+1

@splash - vedi modifica. Sono abbastanza fiducioso che l'OP potrebbe aver apportato tale modifica se il requisito è più dettagliato di quanto espresso, non voglio fare supposizioni su ciò che le persone intendevano davvero dire. – annakata

4
result = dialog.replace(/,\s(\w+)$/, " and $1"); 

$1 si riferisce al primo gruppo di cattura (\w+) della partita.

+1

Esempio: http://jsbin.com/utedu –

+0

Questo wi fallirò per stringhe come "test-1, test-2, test-3", ma di nuovo sono fiducioso che l'OP possa fare tali adattamenti. – annakata

+0

Proprio così @annakata. – splash

0

regex ricerca del modello \ s ([^,] +) $

Line1: If not, sdsdsdsdsa sas ., sad, whaterver4 
Line2: If not, fs sadXD sad , ,sadXYZ!X 
Line3: If not d,,sds,, sasa sd a, sds, 23233 

Cerca con motivi trova Riga1: whaterver4 Line3: 23233

Eppure doesnt trovare Riga2: sadXYZ! X
Che manca solo uno spazio vuoto

Problemi correlati