我有在表单中添加wesbsite选项的功能。
在这里,用户可以写域/url,这个域/url可以是英语和日语,如下所示
www.google.com
www。南极星.com
I am using following validation for english domains
for (var j = 0; j < dname.length; j++) {
var dh = dname.charAt(j);
var hh = dh.charCodeAt(0);
/*if(dh!='.'){
var chkip=chkip+dh;
}*/
if ((hh > 47 && hh < 59) || (hh > 64 && hh < 91) || (hh > 96 && hh < 123) || hh == 45 || hh == 46) {
var index2 = dname.indexOf('www.');
if (index2 != -1) {
dname = dname.substring(index2 + 4);
if (dname.charAt(0) == '-') {
error_msg = ''-'' + window.gt.gettext('not_allowed_in_beginning');
return error_msg;
}
}
if ((j == 0 || j == dname.length - 1) && hh == 45) {
//if(hh == 45){
error_msg = ''-'' + window.gt.gettext('not_allowed_in_beginning');
}
} else {
error_msg = window.gt.gettext('cmnscrpt_domname_inval');
}
}
我可以写些什么来验证日语域?
我认为您应该使用表单验证器。例如,我更喜欢使用这个:http://jqueryvalidation.org/validate.您可以根据语言编写自己的验证规则。
例如,这就是验证汽车VIN号的方法:
(function() {
jQuery.validator.addMethod("vin", function(value, element) {
return this.optional(element) || /^[a-z0-9]{17}$/i.test(value);
}, "");
})();
有一个非常简单的方法可以将所有RegEx逻辑(可以很容易地用英语应用)应用于使用Unicode的任何语言。
为了匹配一系列Unicode字符,如所有字母[a-Za-z],我们可以使用
[\u0041-\u005A]其中\u0041是A的十六进制代码,\u005A的十六进制码
'matchCAPS leTTer'.match(/[u0041-u005A]+/g)
//output ["CAPS", "TT"]
同样,我们可以根据Unicode.org 提供的十六进制顺序(例如:\u0A10到\u0A1F)使用其他Unicode字符或其等效的十六进制代码
以下是url验证的regEx
url.match(/^(ht|f)tps?://[a-z0-9-.]+.[a-z]{2,4}/?([^s<>#%",{}\|\^[]`]+)?$/)
您只需将a-z、a-z、0-9替换为日语Unicode集中的类似字符,它就会正常工作我不懂日语:)