2017-01-13 4 views
-1

Comment obtenir les résultats suivants en utilisant regex en javascript:expression regex nécessaire javascript

convert --> "thisIsTheFunniestStuff" 

to --> "this-Is-The-Funniest-Stuff" 

je l'expression rationnelle suivante:

/\B[A-Z]/g 

Je crois comprendre que je devais cibler la position juste avant une majuscule pour insérer un hypen à cet endroit

J'ai également essayé - /[a-z]\B[A-Z]/

PS. Je ne comprends pas non plus quand les gens écrivent $ 1 $ 2 à la fin après avoir terminé l'expression. $ est pour la fin de l'entrée mais pourquoi ne pas l'inclure dans l'expression elle-même.

+1

Pourquoi '' I' de is' est en minuscule, mais '' T' de The' n'est pas changé? – Rajesh

+0

http://stackoverflow.com/questions/24758284/how-to-find-an-uppercase-letter-in-a-string-and-replace-it-with-a-dash-suivi – Fif

+0

merci rajesh. juste l'édité. – nishkaush

Répondre

2

Utilisez la méthode String#replace et dans la chaîne de remplacement, vous pouvez utiliser la chaîne correspondante en utilisant l'option Specifying a string as a parameter.

var str = "thisIsTheFunniestStuff"; 
 

 
console.log(
 
    str.replace(/\B[A-Z]/g, '-$&') 
 
) 
 

 
// with positive look-ahead assertion 
 
console.log(
 
    str.replace(/(?=\B[A-Z])/g, '-') 
 
)

+0

Salut pranav, pourriez-vous s'il vous plaît expliquer pourquoi ('- $ &') cela a été utilisé au lieu d'un simple hypen comme si ("-"). – nishkaush

+0

@nishkaush: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter –

+1

@nishkaush: le correspond à 'I' et le remplace par' -' va supprimer le caractère 'I' lui-même ... à la place, nous devons le remplacer par' -I', c'est ce que fait '$ &' ... qui contient la chaîne correspondante ... –