Javascript Regexp сопоставление с образцом - PullRequest
2 голосов
/ 10 марта 2010

"CamelCase".replace(/[A-Z]/g, " $1")

Производит

>>" $1amel $1ase"

Как заменить все случаи появления верблюдов.

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

Вам не нужно использовать группу. Используйте $& для ссылки на весь матч :

"CamelCase".replace(/[A-Z]/g, " $&")

И вместо использования /(?!^)[A-Z]/g, вы не получите этот пробел:

"CamelCase".replace(/(?!^)[A-Z]/g, " $&") === "Camel Case"
2 голосов
/ 10 марта 2010

Вам нужен кронштейн () для группировки

"CamelCase".replace(/([A-Z])/g, " $1")

производит

 Camel Case
1 голос
/ 10 марта 2010

Возможно, я упускаю что-то очевидное, но предыдущие ответы относятся не к содержимому CamelCase, а скорее к всем вхождениям заглавных букв.

В этом примере сохраняются непрерывные блоки заглавных букв и отделяется только заглавная буква, за которой не следует заглавная буква (то есть CamelCase).

"CamelCaseTestHTML".replace(/([^A-Z])([A-Z])/g, "$1 $2")
// Camel Case Test HTML
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...