На codewars после прохождения всех тестов выскакивает ошибка. Регулярные выражения
function solution(str, ending){
let reg = new RegExp(ending+'$')
if(str.match(reg)!==null){return true;}
else{return false;}
}
Задание состоит в том, чтобы найти в конце строки совпадение и вывести true || false. 12 тестов проходит, а потом получаю это:
SyntaxError: Invalid regular expression: /:-($/: Unterminated group
at new RegExp
at solution
at check
at
Не могу понять, что не так с моей регуляркой. Ткните носом (пожалуйста)
Ответы (1 шт):
Прежде чем создавать регулярное выражение из произвольной строки, нужно экранировать все символы, которые имеют особое значение в регулярках. В данном случае тест пытается найти смайлик с одной скобкой, но скобка служит особым символом в регулярках (наример, выделяет группу), и открывающая скобка без закрывающей будет ошибкой. Составьте список всех особых символов и экранируйте их.
Кстати, вам обязательно решать с регуляркой? Не проще ли будет с String.prototype.endsWith()?