在我的Rails应用中,我有一个像这样的文本字段

<%= f.text_field :guaranter_furigana_name, autocomplete: "off", class: "form-control", placeholder: "例:ヤマダ タロウ(全角カナ)", maxlength: "50",  :disabled => @disabled_field %>


我正在使用jQuery验证此文本字段仅接受half width katakana字符(从ff60到ff9f的Unicode值)。这是我尝试过的

// Allow only half width kana for guranter フリガナ
$(function (){
  $("#t_user_name_register_guaranter_furigana_name").on("input", function(e){

    var key = e.keyCode || e.charCode;

    var inp = String.fromCharCode(key);

    var kanaregexp = new RegExp('[\uff00-\uff9f]');
    if (kanaregexp.test(inp) != true){
      if( key != 8 && key != 46 && key != 32){
        inp = $(this).val();
        $(this).val(inp.slice(0,-1));
        $("#telno_errmsg").html("半角カナ字のみを入力してください。").show().fadeOut(3000);
        return false;
      }
    }
  });
});


该代码是一团糟,并不总是能正常工作。请帮忙

最佳答案

对于在使用日语文本时正在寻找不同的jQuery验证规则的人们。

//平假名和片假名

jQuery.validator.addMethod("kana", function(value, element) {
 return this.optional(element) || /^([ァ-ヶーぁ-ん]+)$/.test(value);
 }, "<br/>全角ひらがな・カタカナを入力してください"
);


//只有平假名

jQuery.validator.addMethod("hiragana", function(value, element) {
 return this.optional(element) || /^([ぁ-ん]+)$/.test(value);
 }, "<br/>全角ひらがなを入力してください"
);


//只有片假名

jQuery.validator.addMethod("katakana", function(value, element) {
 return this.optional(element) || /^([ァ-ヶー]+)$/.test(value);
 }, "<br/>全角カタカナを入力してください"
);


//半角假名

jQuery.validator.addMethod("hankana", function(value, element) {
 return this.optional(element) || /^([ァ-ン゙゚]+)$/.test(value);
 }, "<br/>半角カタカナを入力してください"
);


//仅字母

jQuery.validator.addMethod("alphabet", function(value, element) {
 return this.optional(element) || /^([a-zA-z\s]+)$/.test(value);
 }, "<br/>半角英字を入力してください"
);


有关更多信息,check here

关于jquery - 文本框中仅允许使用半角片假名(日语)字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38453473/

10-09 23:29