2016-07-29 7 views
2

Für das Adressfeld muss das erste Zeichen jedes Wortes groß geschrieben werden. Ich habe /\b./g verwendet, was schließlich zu einem Problem geführt hat, bei dem das erste Zeichen nach Sonderzeichen wie [email protected]*&;' usw. ebenfalls großgeschrieben wird. dh. King'S Street anstelle von King's Street.Regex-Ausdruck, um das erste Zeichen groß zu schreiben

Gibt es eine Möglichkeit, diesen Ausdruck anzupassen, um dieses Verhalten auszuschließen oder den gesamten Ausdruck optimaler zu ändern?

+0

JavaScript, oder? –

+2

Es gibt einige großartige Online-Tools mit Anweisungen zum Testen Ihrer Regex, z. https://regex101.com/ – jimmy

Antwort

2

ersetzen \b mit (^|[ ])

Ihre regex wird: /(^|[ ])./g

Erläuterung:

\b von definition: verwendet wird, ein Spiel am Anfang oder Ende eines Wortes zu finden.

(^|[ ]) wird mit dem Beginn des Strings oder irgendwelchen Leerzeichen

(^|[ ]). jeden Raum passt auf ein Zeichen und dem ersten Zeichen der Zeichenfolge gefolgt entsprechen.

Randbemerkung:

Verwenden (^|\s) alle Leerzeichen übereinstimmen.

Ihre regex wird: /(^|\s)./g

1

Sie ein Look-Ahead verwenden:

\b[a-z](?=\w+) 

a demo on regex101.com See.

+0

funktioniert nicht mit 'a' und' i'. Überprüfen Sie dies: '" Ich bin ein Student "' –

+0

wird nicht mit 'őúéá' oder anderen Unicode-Zeichen arbeiten. –

Verwandte Themen