更新 2025.4.13 13:38じょうずにもじをかぞえられるかな?
↓のもじをかぞえよう! なんもじあるかな?
↓ジャバスクリプトさんのこたえ
 せいかい!
↓PHPさんのこたえ
str_replace([PHP_EOL, ' ', ' '], '', $textarea_value)をつかったよ!
3 mb_strlen でせいかい!
7 strlen はざんねん!
preg_replace('/[\n\s ]+/', '', $textarea_value)をつかったよ!
4 mb_strlen でもざんねん!
5 strlen もざんねん!
↓このぺーじのそーす
────────────────────────────────────
↓のもじをかぞえよう! なんもじあるかな?
<textarea id="textarea" class="form-control" rows="4">
 あ
 a
…
</textarea>
↓ジャバスクリプトさんのこたえ
<samp id="samp" class="badge text-bg-success"></samp> せいかい!
<script>
const ja=new Intl.Segmenter("ja", {granularity: "grapheme"});
samp.innerText=Array.from(ja.segment(textarea.value.replace(/[\n\s]/g, ""))).length
</script>
<?php
$file = file_get_contents(__FILE__);
$dom = new DOMDocument();
$dom->loadHTML('<?xml encoding="UTF-8">'. $file);
$textarea = $dom->getElementById('textarea');
$textarea_value = trim($textarea->nodeValue);
$value_str_replace = str_replace([PHP_EOL, ' ', ' '], '', $textarea_value);
$value_preg_replace = preg_replace('/[\n\s ]+/', '', $textarea_value);
echo '↓PHPさんのこたえ
<code>', h("str_replace([PHP_EOL, ' ', ' '], '', \$textarea_value)をつかったよ!"), '</code>
<samp class="badge text-bg-success">', mb_strlen($value_str_replace, 'UTF-8'), '</samp> mb_strlen でせいかい!
<samp class="badge text-bg-danger">', strlen($value_str_replace), '</samp> strlen はざんねん!
<code>', h("preg_replace('/[\\n\\s ]+/', '', \$textarea_value)をつかったよ!"), '</code>
<samp class="badge text-bg-danger">', mb_strlen($value_preg_replace, 'UTF-8'), '</samp> mb_strlen でもざんねん!
<samp class="badge text-bg-danger">', strlen($value_preg_replace), '</samp> strlen もざんねん!
↓このぺーじのそーす
', $separator, PHP_EOL, hs($file);