2017-01-13 5 views
-1

Wie die folgende Verwendung von Regex in Javascript zu erreichen:regulären Ausdruck benötigt Javascript

convert --> "thisIsTheFunniestStuff" 

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

ich die folgende regex verwendet:

/\B[A-Z]/g 

Mein Verständnis war, dass ich die Position zum Ziel benötigt, kurz bevor ein Großbuchstaben ein Bindestrich an dieser Stelle einfügen

ich auch versucht - /[a-z]\B[A-Z]/

PS. Ich verstehe auch nicht, wenn Leute $ 1 $ 2 am Ende schreiben, nachdem sie den Ausdruck beendet haben. $ ist für das Ende der Eingabe, aber warum nicht in den Ausdruck selbst einbeziehen.

+1

Warum 'I' von' is' in Klein ist aber 'T' von' der' nicht verändert wird? – Rajesh

+0

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

+0

danke rajesh. habe es gerade bearbeitet. – nishkaush

Antwort

2

Verwenden Sie String#replace Methode und innerhalb der Ersetzungszeichenfolge können Sie übereinstimmende Zeichenfolge mit Specifying a string as a parameter Option verwenden.

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

Hallo pranav, könntest du bitte erklären warum ('- $ &') das wurde anstelle eines einfachen Hypens wie so verwendet ("-"). – 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: Das würde "I" entsprechen und durch "-" ersetzen wird das Zeichen "I" selbst entfernen ... statt dessen müssen wir es durch "-I" ersetzen, das ist es, was das '$ &' macht ... welches den übereinstimmenden String enthält ... –

Verwandte Themen