2013-04-23 8 views
5

Mam ciąg tam, gdzie mogą być znaki specjalne, które mają zastąpić myślnikiemUsuń spacje, kropki i specjalne znaki z łańcucha i zastąpić myślnikiem w jQuery

var str="123.This is,, :ravi" 

Powyższy ciąg powinien zostać przekształcony jak to

var newstr="123-This-is-ravi"; 

staram ten

function remove(str){ str.replace(/\./g, "-"); } //replaces only dots 
function remove(str){ str.replace(/ /g, "-"); } //replaces only spaces 

może ktoś hel p mnie to robi? Muszę zastąpić znaki specjalne myślnikiem.

Odpowiedz

13

Ty should do the regular expression all at once:

"123.This is,, :ravi".replace(/[\. ,:-]+/g, "-") 

W ten sposób nie będzie podwoić myślnikami.

Należy zwrócić uwagę, że jeśli wartość kończy się kropką (kropką) lub dowolnymi białymi znakami, to kończy się łącznikiem.

6

Można także spróbować globalnie zastąpić dowolny znak niealfanumeryczny i białą przestrzeń za pomocą funkcji

"123.This is,, :ravi".replace(/[\W_]/g, "-") 

/[\ W _]/g to globalnie eliminuje wszelkie nie alfanumerycznych znaków i spacji i może być zastąpione przez wszystko, co wybrałeś po przecinku,

+1

To powinna być poprawna odpowiedź. nie wiesz, dlaczego ludzie robią to leniwie na konsoli: "@! # $ DFASDFASD $ #:, '\/ssss" .replace (/ [\ W _]/g, "-"): "--- --DFASDFASD ------- ssss " – Erick

Powiązane problemy