#javascript #angular #string #replace
Вопрос:
У меня есть простой цикл *ngFor, который отображает список заголовков.
fetchData = [{"title":"woman .gif"},{"title":"aman",},{"title":"jessica",},{"title":"rosh"}];
<div *ngFor = "let title of fetchData">
{{sanitiseIconString(title.title)}}
</div>
Я запускаю его с помощью своего метода очистки , чтобы удалить все
ссылки и все, что угодно, включая .extension
, например .gif
, .jpg
, .png
sanitiseIconString(str: string): string {
return str amp;amp; str.substring(0, str.lastIndexOf(".")).replace(/ /g, " ");
}
Мой цикл возвращает только woman
то, что было правильно очищено, но почему остальные не отображаются?
https://stackblitz.com/edit/ngfor-example-2atjev?file=app/app.component.ts
Комментарии:
1. Я понимаю это потому, что в других названиях нет «.»
Ответ №1:
Обновите строку очистки в файле app.compoent.ts
это потому, что у вашего другого названия нет . и 20%, поэтому условие всегда ложно и не возвращается
sanitiseIconString(str: string): string {
return str.substring(0, str.lastIndexOf(".")).replace(/ /g, " ")? str.substring(0, str.lastIndexOf(".")).replace(/ /g, " "):str;
}
Ответ №2:
Если вы хотите удалить использование string.replace()
, это будет проще и проще
<div *ngFor="let title of fetchData">
{{title.title.replace(' ','')}}
<!-- {{sanitiseIconString(title.title)}} -->
</div>