#javascript #regex #string #numbers #regression
Вопрос:
const input = "2a smith road ";
const input 2 = "333 flathead lake road, apartment 3b"
const address = input.replace(/(^w{1})|(s w{1})/g, letter => letter.toUpperCase());
Вывод должен выглядеть следующим образом:
input = "2A Smith Road"
input = "333 Flathead Lake Road, Apartment 3B"
Комментарии:
1. Не
/d[a-zA-Z]/g
работает?
Ответ №1:
Я думаю, что поиск символа слова ( w
), которому предшествует ( (?<=...)
) граница слова ( b
) и необязательные цифры ( d*
) должны охватывать все случаи:
const input = [
"2a smith road",
"333 flathead lake road, apartment 3b"
];
const capitalize = (s) => s.replace(/(?<=bd*)(w)/g, l => l.toUpperCase());
input.forEach(s => console.log(capitalize(s)))
Ответ №2:
Вы можете сопоставить 1 или более цифр, за которыми следует символ в нижнем регистре bd [a-z]b
и прописные буквы всего совпадения
[
"2a smith road",
"333 flathead lake road, apartment 3b"
].forEach(s => console.log(s.replace(/bd [a-z]b/g, m => m.toUpperCase())));