#javascript #angular
#javascript #угловой
Вопрос:
search(q: string): Observable<any> {
if(!q || q === '*') {
q = '';
} else {
q = q.toLowerCase();
}
В условии if почему здесь в качестве строки используется подстановочный знак? Пожалуйста, объясните это.
Комментарии:
1. Поиск ‘*’ = поиск пусто
Ответ №1:
регулярное выражение выполняет поиск пустого значения, включая пробелы и табуляции /^s*$/ . Регулярные выражения не используют исключительно «*», это количество совпадений от 0 до бесконечности.
console.log(/^s*$/.test(""));
console.log(/^s*$/.test(" "));
console.log(/^s*$/.test("*"));
Ответ №2:
Я не думаю, что это действительно работает. На самом деле он работает как обычный компаратор строк, где он соответствует «*» .
пожалуйста, посмотрите ссылку https://www.w3schools.com/js/js_regexp.asp
Ответ №3:
Это не подстановочный знак. *
это обычная строка. Что делает эта функция, так это принимает строку q
в качестве аргумента, если она не определена, или равна нулю, или пуста, или равна *
, тогда она просто вернет пустую строку, в противном случае она вернет строку в нижнем регистре q