2016-07-19 50 views
0

在我的Rails应用程序我有一个文本字段这样允许在文本框中只有一半片假名(日文)字符

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

我使用jQuery来验证这个文本字段只接受half width katakana字符(Unicode值从ff60到ff9f)。这是我试过的

// 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; 
     } 
    } 
    }); 
}); 

该代码是一团糟,并不总是工作。请帮助

+0

这不是JQuery的,但[中的Active Record回调验证日文字符(http://stackoverflow.com/q/15631168/567863)可能会帮助你。 –

回答

2

对于在使用日文文本时查找不同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

相关问题