Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сделать большими начальные буквы слов (https://javascript.ru/forum/misc/68954-sdelat-bolshimi-nachalnye-bukvy-slov.html)

white_raven777 19.05.2017 18:24

Сделать большими начальные буквы слов
 
Такая проблема, не могу понять как сделать большими начальные буквы слов которые находятся в одной строке

laimas 19.05.2017 19:10

alert('aaa bbb ccc dddd'.replace(/\b.{1}/g, function(v) {
    return v.toUpperCase()
}))

Nexus 19.05.2017 19:32

var text='aaa bbb'+"\n"+'ccc dddd',//Текст
	lines=text.split(/\n/gi),//Список строк
	line_num=0;//Номер строки, слова которой нужно изменить (первая строка - нуль)

lines[line_num]=lines[line_num].replace(/\b.{1}/g,function(v){
    return v.toUpperCase()
});
text=lines.join("\n");
alert(text);

laimas 19.05.2017 19:43

Цитата:

Сообщение от Nexus
text.split(/\n/gi)

А управляющие символы могут быть и в верхнем регистре? :) И модификатор g тоже не нужен.

рони 19.05.2017 19:44

white_raven777,
http://javascript.ru/php/ucwords
https://learn.javascript.ru/task/ucfirst

Nexus 19.05.2017 19:49

Цитата:

Сообщение от laimas (Сообщение 452879)
А управляющие символы могут быть и в верхнем регистре? :) И модификатор g тоже не нужен.

Мне с этими модификаторами спокойнее))

laimas 19.05.2017 22:14

Цитата:

Сообщение от Nexus
Мне с этими модификаторами спокойнее

Кашу маслом не испортишь? )

Если считать, что могут быть более одного пробела, то шаблон должен быть /\b\S/g. В остальном же, даже если это много строк это будет замена во всех, даже без модификатора m. Значит ли, что "которые находятся в одной строке" означает замену в какой либо из множества строк не известно.

рони 19.05.2017 22:18

:-? зачем указывать количество {1} ???

laimas 19.05.2017 22:29

Цитата:

Сообщение от рони
зачем указывать количество

Да, не нужно, первую же только и надо (исправлено).

PS. Что до сих пор атаки на форум, что быстрый ответ не принимает или ...?

SV0L0CH 20.05.2017 02:14

Самая оптимальная регулярка /\b\w/g
В любом случае toUpperCase сработает только для \w

рони 20.05.2017 02:37

:write: рабочие варианты пока только о ссылкам в посте №5

laimas 20.05.2017 04:13

Цитата:

Сообщение от SV0L0CH
любом случае toUpperCase сработает только для \w

Если определено наличие только латиницы, то да. А \w включает еще и символ подчеркивания, для него toUpperCase тоже не сработает. )

laimas 20.05.2017 04:16

Цитата:

Сообщение от рони
рабочие варианты пока только о ссылкам

Да ну нафик - взять по границе слова отличное от пробела, первый символ проверили, подходит, поехали дальше. :)

SV0L0CH 20.05.2017 10:00

Цитата:

Сообщение от laimas
\w включает еще и символ подчеркивания, для него toUpperCase тоже не сработает.

Более того, если подчёркивание не считать допустимым в слове символом, то и \b наверняка будет работать не как хотелось бы.
А есть минусы, тире, дефисы... Включать или не включать их в состав слова зависит от поставленной задачи.

laimas 20.05.2017 10:07

Цитата:

Сообщение от SV0L0CH
Более того, если подчёркивание не считать допустимым в слове символом, то и \b наверняка будет работать не как хотелось бы.

Если рассуждать о всех "если", то и жить тоже вредно. )

рони 20.05.2017 10:15

:-? то есть на кирилицу вы забили? :)

laimas 20.05.2017 10:39

Могу заключить пари, что консилиум "докторов" и "кандидатов" поставит диагноз больному аппендицит и будет лечить его, а окажется, что был банальный насморк. :)

laimas 21.05.2017 04:07

Цитата:

Сообщение от рони
то есть на кирилицу вы забили?

Исправил оплошность, автоматом не на того наехал. :)


Часовой пояс GMT +3, время: 05:14.