2017年6月5日(月)
[JavaScript] .repeat() #HTML5&CSS3&JavaScriptstringObj.repeat(count);
文字列を繰り返すメソッドが当然あって然りなのだが、JavaScriptには標準定義されてこなかった。しかしながら、最近のデバイスでは有効のようである。
iPhone(iOS10.3.2+Safari)では、有効であった。
Windowsでは、Windows10+Edgeのみ有効であり、Windows10+IE11では利用できない。Windows8.1以前でも利用できない。まあ、旧Windowsのせいで、事実上使えないということである。
-- 参考 --
https://msdn.microsoft.com/ja-jp/library/dn858244(v=vs.94).aspx--
さて、従来、独自メソッドの定義をプログラマー自身で作成してきた。.repeat()についてもそうである。
独自メソッドの定義は、独自関数と要領は同じである。
--
String.prototype.repeat = function($num){}
※関数を分離して記述する方法もあるが、省略。
--
下記に、プログラム例を示した。テスト的に、既存のメソッドが上書きされているか"repreat_"を付けて区別してみた。
なお、$strと$numが独自メソッドと独自関数に混在しているが、スコープがそれぞれに限定されているので、お互いに影響ない。<input>のnameをstrとnumにしても問題ない。独自メソッド.repeat()と独自関数repeat()も混在できる。まあ、ややこしくなるので、通常はやらないが、今回はテスト確認のため、そうしてみた。
--
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script>
//
// 独自メソッドの定義
//
String.prototype.repeat = function($num){
$str = 'repeat_';
$txt = this.toString();
while (--$num >= 0) {
$str += $txt;
}
return $str;
}
//
// 独自関数:文字列の出力
//
function repeat(){
$str = document.forms[0].str.value;
$num = document.forms[0].num.value;
document.getElementById("id_repeat").innerHTML = $str.repeat($num);
}
</script>
<title>[JavaScript] stringObj.repeat(count)</title>
</head>
<body>
<p>[JavaScript]<br>
stringObj.repeat(count)</p>
<hr>
<form>
<p>String:<br>
<input type="text" name="str"></p>
<p>Count:<br>
<input type="number" name="num"></p>
<p><input type="button" value="repeat" onclick="repeat();"></p>
<p id="id_repeat"></p>
</form>
<hr><hr>
<p>presented by Garage Collection</p>
</body>
</html>
--
http://neconote.jp/prg/repeat.html