글자 너비를 반각 18자까지 확장

This commit is contained in:
2018-10-29 02:39:23 +09:00
parent 2cc0150bec
commit 13fab5ebe4
13 changed files with 174 additions and 14 deletions
+53
View File
@@ -23,6 +23,59 @@ var escapeHtml = (function (string) {
}
})();
;(function(ns){
//https://gist.github.com/demouth/3217440
/**
* mb_strwidth
* @param String
* @return int
* @see http://php.net/manual/ja/function.mb-strwidth.php
*/
var mb_strwidth = function(str){
var i=0,l=str.length,c='',length=0;
for(;i<l;i++){
c=str.charCodeAt(i);
if(0x0000<=c&&c<=0x0019){
length += 0;
}else if(0x0020<=c&&c<=0x1FFF){
length += 1;
}else if(0x2000<=c&&c<=0xFF60){
length += 2;
}else if(0xFF61<=c&&c<=0xFF9F){
length += 1;
}else if(0xFFA0<=c){
length += 2;
}
}
return length;
};
/**
* mb_strimwidth
* @param String
* @param int
* @param int
* @param String
* @return String
* @see http://www.php.net/manual/ja/function.mb-strimwidth.php
*/
var mb_strimwidth = function(str,start,width,trimmarker){
if(typeof trimmarker === 'undefined') trimmarker='';
var trimmakerWidth = mb_strwidth(trimmarker),i=start,l=str.length,trimmedLength=0,trimmedStr='';
for(;i<l;i++){
var charCode=str.charCodeAt(i),c=str.charAt(i),charWidth=mb_strwidth(c),next=str.charAt(i+1),nextWidth=mb_strwidth(next);
trimmedLength += charWidth;
trimmedStr += c;
if(trimmedLength+trimmakerWidth+nextWidth>width){
trimmedStr += trimmarker;
break;
}
}
return trimmedStr;
};
ns.mb_strwidth = mb_strwidth;
ns.mb_strimwidth = mb_strimwidth;
})(window);
/**
* object의 array를 id를 key로 삼는 object로 재 변환
+8 -1
View File
@@ -42,6 +42,13 @@ function changeInstallMode(){
}
$(document).ready( function () {
jQuery.validator.addMethod("minwidth", function(value, element, params) {
return this.optional(element) || mb_strwidth(value) >= params;
}, "글자 너비가 알파벳 {0} 자보다 길어야합니다");
jQuery.validator.addMethod("maxwidth", function(value, element, params) {
return this.optional(element) || mb_strwidth(value) <= params;
}, "글자 너비가 알파벳 {0} 자보다 짧아야합니다");
changeInstallMode();
var parentPathname = location.pathname.split('/').slice(0,-2).join('/');
$('#serv_host').val(
@@ -133,7 +140,7 @@ $(document).ready( function () {
},
nickname:{
required: true,
maxlength: 9,
maxwidth: 18,
}
},
messages: {
+7 -1
View File
@@ -1,4 +1,10 @@
$(document).ready( function () {
jQuery.validator.addMethod("minwidth", function(value, element, params) {
return this.optional(element) || mb_strwidth(value) >= params;
}, "글자 너비가 알파벳 {0} 자보다 길어야합니다");
jQuery.validator.addMethod("maxwidth", function(value, element, params) {
return this.optional(element) || mb_strwidth(value) <= params;
}, "글자 너비가 알파벳 {0} 자보다 짧아야합니다");
$( "#main_form" ).validate( {
rules: {
username: {
@@ -28,7 +34,7 @@ $(document).ready( function () {
},
nickname:{
required: true,
maxlength: 9,
maxwidth: 18,
remote: {
url: "j_check_dup.php",
type: "post",