как в строке в каждом слове сделать первую букву в верхний регистр ? Точнее как сделать это регуляркой ?
let str = 'исходная Строка дЛЯ теста';
let res = str.replace(/(?:^|\s)(\S)/ug, m => m.toUpperCase());
console.log(res);
(?:^|\s) - начало строки или пробельный символ(\S) - непробельный символ с захватом для заменыНасколько я знаю, в js regexp нет аналога \b для unicode.
В некоторых случаях, эта регулярка не подойдёт(из-за отсутствия пробелов): а,б,в
Проще всего использовать класс \p{L}:
let str = 'исходная Строка дЛЯ теста(раз,два,три)';
let res = str.replace(/(?:^|[^\p{L}])(\p{L})/ug, m => m.toUpperCase());
console.log(res);
Если среда поддерживает стандарт ECMAScript 2018, можно использовать (?<![\p{L}\p{N}_]) в качестве альтернативы границе слова \b и \p{Ll} для поиска любой буквы в нижнем регистре (\p{L} найдет любые буквы, которые уже могут быть в верхнем регистре):
var rx = /(?<![\p{L}\p{N}_])\p{Ll}/gu;
var s = "наша новая,короткая строка.и тут ещё предложение.";
console.log(s.replace(rx, $0 => $0.toUpperCase()));
(?<![\p{L}\p{N}_]) - блок предварительного просмотра назад, находит место в строке, перед которым нет буквы, цифры или _\p{Ll} - буква в нижнем регистре.Если нет поддержки ECMAScript 2018, нужна либо библиотека XRegExp, либо выражение, содержащее диапазоны поддерживаемых букв:
var rx = /(?:^|[^а-яА-ЯёЁA-Za-z0-9_])[a-zа-яё]/gu;
var s = "наша новая,короткая строка.and another sentence.";
console.log(s.replace(rx, function($0) { return $0.toUpperCase(); }));
var xrx = XRegExp("(?:^|[^\\pL\\pN_])\\p{Ll}", "g");
console.log(XRegExp.replace(s, rx, function($0) { return $0.toUpperCase(); }));
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости