2018年5月10日 (木)

メールの照合(HTML5)

jQuery(function($) {
  var _check = function($mails) {
    var v0 = $mails.get(0).value;
    var v1 = $mails.get(1).value;
    if (v0 != '' && v1 != '' && v0 != v1) {
      $mails.get(1).setCustomValidity('メールアドレスが一致しません。');
    } else {
      $mails.get(1).setCustomValidity('');
    }
  };
  var _match = function($mails) {
    $mails.on('input', function() { _check($mails); });
    $(window).load(function() { _check($mails); });
  };
  _match($('[name="mail1"],[name="mail2"]'));
});

| | コメント (0)

2018年3月 8日 (木)

経過時間計測用

var TIMER = new (function() {
  var t = {};
  this.start = function(s) {
    t[s] = [];
    t[s][0] = new Date().getTime();
  };
  this.stop = function(s) {
    if (t[s] && t[s][0]) {
      t[s][1] = new Date().getTime();
    }
  };
  this.get_elapsed = function(s) {
    if (t[s] && t[s][0] && t[s][1]) {
      return t[s][1] - t[s][0];
    }
    return -1;
  };
})();

| | コメント (0)

2017年12月 6日 (水)

表示・非表示の期間を指定

/*
 *  term.js を使用
 *
 *  http://aok.blue.coocan.jp/html5/common/js/term.js
 *
 */

/* 表示・非表示の期間を指定 */
jQuery.fn.extend({
  term_check: function(d, h, m, s, ms) {
    return this.each(function() {
      var a = $(this).attr('data-term');
      var aa = a.split('-');
      var t = new Term(aa[0], aa[1]);
      t.extend(0, 0, d, h, m, s, ms);
      if (!t.within()) $(this).hide();
    });
  }
});
jQuery(function($) {   /* 終了日時を含めるために、1ミリ秒進める */   $('[data-term]').term_check(0,0,0,0,1); }); /* <li data-term="2017/12/6">表示開始日のみ(00:00)指定</li> <li data-term="-2017.12.6 12:00">表示終了の日時のみ指定</li> <li data-term="2017.6.28 09:00-2017.12.6 17:00">表示期間日時を指定</li> */

| | コメント (0)

2017年11月27日 (月)

Perl の tr/// もどき

/* Perl の tr/// もどき */
String.prototype.tr = function(s1, s2) {
  var _parse = function(s) {
    var a = [], f = false;
    for (var i = 0, len = s.length; i < len; i++) {
      var c = s.charAt(i);
      if (!f && c == '-') {
        f = true;
        continue;
      } else if (f) {
        var b = a.pop();
        if (b) {
          var bc = b.charCodeAt(0);
          var cc = c.charCodeAt(0);
          for (var j = bc; j < cc; j++) {
            a.push(String.fromCharCode(j));
          }
        } else {
          a.push('-');
        }
        f = false;
      }
      a.push(c);
    }
    if (f) a.push('-');
    return a;
  };
  var a1 = _parse(s1);
  var a2 = _parse(s2);
  var t = {}, s = '';
  for (var i in a1) {
    if (a2[i]) t[a1[i]] = a2[i];
  }
  for (var i = 0, len = this.length; i < len; i++) {
    var c = this.charAt(i);
    s += (t[c] ? t[c] : c);
  }
  return s;
};

| | コメント (0)

2017年11月25日 (土)

ReadOnly なプロパティ

var H = function(n) {
  this._hoge = n | 0;
};

Object.defineProperties(H.prototype, {
  'hoge': { get: function() {
    return this._hoge;
  } }
});

var x = new H('5abc');
var y = new H('30.589');
console.log(x.hoge);
console.log(y.hoge);

| | コメント (0)

«ひらがなソート