I only update when I feel like it.

tomisan.com

【jquery.validate】カスタムルールいろいろ【覚書】

jquery.validate.jsを使用。カスタムルールを作成する。

◆ひらがなのみ

$.validator.addMethod("hiragana", function(value, element) {
    var hiraganaPattern = /^[\u3040-\u309F]+$/;
    return this.optional(element) || hiraganaPattern.test(value);
}, "ひらがなで入力してください");

 

◆カタカナのみ

$.validator.addMethod("katakana", function(value, element) {
    var katakanaPattern = /^[\u30A0-\u30FF\s]+$/;
    return this.optional(element) || katakanaPattern.test(value);
  }, "カタカナで入力してください");

 

◆日本語のみ

$.validator.addMethod("japanese", function(value, element) {
    var japanesePattern = /^[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}\u30fc\u3000-\u303f]+$/u;
    return this.optional(element) || japanesePattern.test(value);
  }, "日本語で入力してください");

 

◆英数字のみ

$.validator.addMethod("alphaNum", function (value, element) {
    var alphaNumPattern = /^([a-zA-Z0-9]+)$/;
    return this.optional(element) || alphaNumPattern.test(value);
  }, "英数字で入力してください");

 

◆英字のみ

$.validator.addMethod("alpha", function (value, element) {
    var alphaPattern = /^([a-zA-Z]+)$/;
    return this.optional(element) || alphaPattern.test(value);
  }, "英字で入力してください");

 

◆桁数指定

$.validator.addMethod("tenDigits", function (value, element) {
    var tenDigitsPattern = /^\d{10}$/;
    return this.optional(element) || tenDigitsPattern.test(value);
  }, "10桁で入力してください");

 

◆数字のみ

$.validator.addMethod("numeric", function(value, element) {
    var numericPattern = /^([0-9]+)$/;
    return this.optional(element) || numericPattern.test(value);
  }, "数字で入力してください");

 

◆半角カタカナ、英数字、特定の記号指定

$.validator.addMethod("katakanaAlphaNumLimitedSymbol", function(value, element) {
    var kANLSymbolpattern = /^([ヲ-゚a-zA-Z0-9()./-\s]+)$/;
    return this.optional(element) || kANLSymbolpattern.test(value);
  }, "半角カタカナ、英数字、() . / - のみで入力してください");

 

◎具体例◎

$(document).ready(function() {
  // カスタムルールを定義
  $.validator.addMethod("numeric", function(value, element) {
    var numericPattern = /^([0-9]+)$/;
    return this.optional(element) || numericPattern.test(value);
  }, "数字で入力してください");

  //
  $("#formdesu").validate({
    rules: {
      fieldname: {
        required: true,
        numeric: true
      }
    },
    messages: {
      fieldname: {
        required: '入力してください'
      }
    },
  });
});

コメントは受け付けていません。