Я пытаюсь создать al oop, который заменит определенные слова их заглавной версией. Однако я не могу заставить его работать с группами захвата, так как мне нужно только прописные слова, окруженные пробелами или маркером начала строки. Если я правильно понимаю, \b
это сопоставление границ? Приведенный ниже список для удобства сокращен.
raw_text = 'crEate Alter Something banana'
var lower_text = raw_text.toLowerCase();
var sql_keywords = ['ALTER', 'ANY', 'CREATE']
for (i = 0; i < sql_keywords.length; i++){
search_key = '(\b)' + sql_keywords[i].toLowerCase() + '(\b)';
replace_key = sql_keywords[i].toUpperCase();
lower_text = lower_text.replace(search_key, '$1' + replace_key + '$2');
}
Цикл работает нормально, но замена не удалась. Я предполагаю, что отформатировал это неправильно, но я не могу понять, как правильно отформатировать это. Для ясности, он ищет слово, окруженное либо началом строки, либо пробелом, а затем заменяет слово версией в верхнем регистре, сохраняя границы.