ISO 8601 継続時間表記を正規表現で抜き出す

ISO 8601 日時の期間文字列から W, Y, M, D, h, m, s を抜き出す。 書式は、P[n]Y[n]M[n]DT[n]H[n]M[n]S または、P[n]W /^P(?=(?:\d+(?:\.\d+)?W|(?:\d+(?:\.\d+)?[YMD]){1,3}(?:T(?:\d+(?:\.\d+)?[HMS]){1,3})?|T(?:\d+(?:\.\d+)?[HMS]){1,3})$)(?:(.+)W|(?…

JavaScript エンターキーで移動する。その3

隠された要素は飛ばす。 [CTRL]+[Enter]では、 checked にする テキストエリア内での処理を追加 IMEの未変換文字がある状態での Enter キーの対応 ルートの設定が個別にできること <title></title> <meta charset="utf-8"> <style> </style> <body> <form id="F"> <p> <input name="a" value="a"> <input name="b" value="b" type="hidden"> <input name="c" value="c"> </p></form></body></meta>

JavaScriptの質問に答えているだけでは、自分のスキルはあまり向上しない

なんとなくそう思った。

JavaScriptでスライドを作る!しかもスクリプトは1行

基本的な考え方 アニメーションはスタイルシートで行い。対象の要素群の先頭にだけ適用する。 アニメーションが終了するとイベントが発生するのでそれを監視する。 イベントの終了した要素を、その要素群の最後尾に移動する。 寺尾での回答 https://teratail…

SELECT[multiple]:selected を取得する方法を発明した?

そもそも SELECT:selected なんてものはない! そこで change イベントで select[multiple] をすべて監視し、selected になったもに "data-selected" を付与しておけば、いつでも querySelectorAll で取得できる。 もちろん、クエリーにもそれを付与しなけれ…

location.hash から値を取り出してオブジェクト型で返す

location.hash から値を取り出してオブジェクト型で返す Ajaxで使うかもしれない let obj = hash2obj ("http://hoge.com#label?a=123&b="); obj = { hash : '#label', id : 'label', value: { a: 123, b: undefined }, query : '?a=123&b=' } function hash2…

?レンタルサーバーで・・・

Smail Sever 解決する課題 サーバー変数が取得できない モジュール形式にすることでとりあえず回避 元号日付に対応していない $str = strftime ("%Ex", strtotime ($strDate));

震災後

十年来、行って手を合わせたかった場所にやっと行くことができた。 往復に700km。 宮城県の大川小学校だ。 津波で死んだ人たちに会いたかったからだ。 周りは工事中で騒がしい場所ではあったが、近くに慰霊の石碑があった。 足が悪いので雪道は勘弁。車の…

マウスストーカー

<script> class P2{ constructor(x=0,y=0){this.x=x;this.y=y} get clone(){return new P2(this.x,this.y)}//複写 add({x=0,y=0},{x:X,y:Y}=this){this.x=X+x;this.y=Y+y;return this}//加算 sub({x=0,y=0},{x:X,y:Y}=this){this.x=X-x;this.y=Y-y;return this}//減算…

万年カレンダーJavaScriptで作る

万年カレンダーJavaScriptで作る <meta charset="utf-8"> <title></title> <style> table { margin: 1em 0; } thead td { font-weight: bold; } thead td, tbody td { text-align: center; border: 1px transparent solid; } tbody td:hover:not(.pDay):not(.nDay) { border: 1px #f80 solid; } tr td:fi</meta>…

アロー関数で再帰

JavaScript アロー関数で再帰 有ろうことか!アロー関数で再帰ができるとは知らなかった。 let func = ((cbFunc = arg=> { ... }) => cbFunc)() const fibonacci = ((fb= n=> n > 1 ? fb(n-2) + fb(n-1): n)=> fb)(); console.log(fibonacci (9));//-> 34 </script>ア…

時間を遅らせてコールバック関数を起動する

時間を遅らせてコールバック関数を起動する class DelayCBFunc { constructor (cbfunc, time = 500 /*ms*/) { this.cbfunc = cbfunc; this.time = time; this.tmid = null; this.disabled = false; } restart (...args) { this.stop (); this.tmid = setTime…

SELECTの連携を今更ながら書いてみた

寺尾で答えてみた https://teratail.com/questions/310078 なぜか面白くない。 提示されたコードは見難い。なので最初から自分で好きなように書いた方が楽。 汚いコードを指摘してあげるより、私はこれが楽だ。 本当の意味でのショートコーディングは奥が深…

PerlinNoise

class PerlinNoise { constructor (random = Math.random) { this.random = random; this.gradient = new Map; } randomGradient (x) { if (! this.gradient.has (x)) this.gradient.set (x, this.random () * 2 -1); return this.gradient.get (x); } noise…

PHP クラスの覚書

PHP クラスの覚書 a = $a; …

順列を求める

Javascriptで順列を求める 考えたコード function permutations (ary = [ ], r = ary.length) { function recursion (ary, r, A = []) { if (r == 0) return ary.map (a=> A.concat(a)); let result = []; for (let i = 0; i < ary.length; i++) { let aaa =…

パーリンノイズ

パーリンノイズ 参考URL https://mrl.cs.nyu.edu/~perlin/doc/oscar.html https://github.com/a-i-to/perlin-noise-sample GitHubから引用 function PerlinNoise(random) { if (random) { this._random = random; } else { this._random = Math.random; } th…

JavaScriptで数値を漢数字に変換する

俺様仕様。 使おうと思ったらまともに動かなかった!なんで? ということで書き直した。 動かしているうちに短くなってしまった もう少し煮詰めれば、さらに短くなりそうなのだけれど… 今日は終了! function kansuji(a,t=0,r='',N=[...'〇一二三四五六七八…

JavaScript class memo

JavaScript class memo //ECMAScript2015: class class A { constructor (a, b) { Object.assign (this, {a, b}); this._val = null;//暗黙に内部変数 } get value () { return this._val; } set value (val) { this._val = val; } get clone () { let {a, b…

視野変換の覚書

視野変換 視野変換のための行列を得る 必要となる座標・空間ベクトル 目の位置 注視している位置 視線ベクトル 視線ベクトルの頭上方向のベクトル Z軸について 視線ベクトルの長さ 視線ベクトルのノルム(単位ベクトル)をZ軸周りのベクトルとする X軸につい…

フラクタルを利用して3次元の木を描く

フラクタルを利用して3次元の木を描く フラクタルな図形を2次元から3次元にするにあたり、空間ベクトルの向きを変えるのに苦労してしまった。 基本的な考えとしては、まず枝となる空間ベクトルのYの値を無視してXZ面で90度回転し、枝に対して水平に直行…

オブジェクト指向でフラクタルの木を描画する

オブジェクト指向でフラクタルの木を描画する マウスのドラッグで回転する class CG { constructor (canvas, offset = new P2) { this.canvas = canvas; this.offset = offset; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; ca…

マウスでドラッグすると3D回転します

マウスでドラッグすると回転します { class CG { constructor (canvas, offset = new P2) { this.canvas = canvas; this.offset = offset; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; …

オブジェクト指向的なフラクタルの木の描画

{ class CG { constructor (canvas) { this.canvas = canvas; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; } line (x0 = 0, y0 = 0, x1 = 0, y1 = 0, color = "black") { let { ctx } =…

年・月・日の入力を SELECT 要素で連動する(年度指定も可)

年・月・日の入力を SELECT 要素で連動する(年度指定も可) 年月日の入力を簡単にする。 マウスホイールにも対応。 年月日の範囲も指定可能。例:dateObj を [-7, 0, 10] の様な引数にすると、[一週間前, 今日, 10日後] の様な指定も可能。 使い方 chainD…

山形県の水族館

くらげ その2 くらげ いそぎんちゃく

sin , cos の値を計算で求めるアルゴリズム

sin , cos の値を計算で求めるアルゴリズム var sin_cnt = 0, cos_cnt = 0; function sin (x) { let s = x, y = -x*x, b = 1, i = 1, r = x, m; do { sin_cnt++; m = r; r += (s*=y) / (b *= ++i*++i); } while (m - r); return r; } function cos (x) { let…

クオータニオンを JavaScript で!!

クオータニオンを JavaScript で!! コンピュータ・グラフィックを計算すときに、回転は付きものだ。 勉強しているうちに「クオータニオンで回転」が出てきた。 まず、それを学んだ結果を記録する クオータニオンとは それは「数」であり、「超複素数」である…

MySQL で相関係数を求める

MySQL で相関係数を求める その前に予習 平均: 母分散:標準偏差:変動係数: 単回帰分析 相関係数:単回帰式:回帰係数: MySQL table name x y 標準偏差を求める SELECT name, ROUND(AVG(x),2) AS "平均(x)", ROUND(AVG(y),2) AS "平均(y)", ROUND(VAR_PO…

JavascriptでcolSpanやrowSpanが含まれたテーブルの特定のセルの相対的なインデクス(cellIndex)を調べる

function cellsIndex (table = document.querySelector ('table')) { let rows = table.tHead ? table.tHead.rows: [table.rows[0]],//tHeadの全てor tBodyの最初の行 rst = new Map, buf = [ ]; if (! rows.length) throw new Error (); //すべてのセルを走…