JavaScript, ты пьян, иди домой!
Прошу прощения за такой провокационный заголовок, просто именно эта фраза возникла у меня в голове когда я увидел следующее:
<p>privet</p>
<script>
alert([...document.getElementsByTagName("p")].map(e=>e.innerHTML.match(/[^<^>]/g)).join(""))
</script>
Результат - всплывает окно, где написано "p,r,i,v,e,t". , Мой вопрос: ОТКУДА ВЗЯЛИСЬ ЗАПЯТЫЕ??? |
alert([1,2,3]) Пить меньше надо. ;) |
Цитата:
alert(["a","b","c"].join("")) // "abc"
Цитата:
|
.match(/[^<^>]/g) Найти все символы не равные "<", "^" или ">" по одному. |
Цитата:
|
Цитата:
|
Цитата:
Смотрите: ["p","r","i","v","e","t"].join("") // "privet" [...document.getElementsByTagName("p")].map(e=>e.innerHTML.match(/[^<^>]/g)).join("") // "p,r,i,v,e,t". И там и там строковый массив, а результат разный. |
Всё, сообразил. Я ошибся и join'ом соединял не результаты регулярного выражения, а параграфы.
Правильно должно быть так:
<p>privet</p>
<script>
alert([...document.getElementsByTagName("p")].map(e=>e.innerHTML.match(/[^<^>]/g).join("")))
</script>
|
Цитата:
|
Цитата:
alert([...'asd']); |
| Часовой пояс GMT +3, время: 07:05. |