글자 너비를 반각 18자까지 확장
This commit is contained in:
+1
-1
@@ -196,7 +196,7 @@ foreach ($troops as $troopNo=>$troop) {
|
|||||||
<table width=1000 class='tb_layout bg0'>
|
<table width=1000 class='tb_layout bg0'>
|
||||||
<tr>
|
<tr>
|
||||||
<td width=80 id=bg1>부 대 명</td>
|
<td width=80 id=bg1>부 대 명</td>
|
||||||
<td width=130><input type=text style=color:white;background-color:black; size=18 maxlength=9 name=name></td>
|
<td width=130><input type=text style=color:white;background-color:black; size=18 maxlength=18 name=name></td>
|
||||||
<?php if($me['troop'] == 0): ?>
|
<?php if($me['troop'] == 0): ?>
|
||||||
<td><input type=submit name=btn value='부 대 창 설'></td>
|
<td><input type=submit name=btn value='부 대 창 설'></td>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ $db = DB::db();
|
|||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT `no`, nation, troop FROM general WHERE `owner`=%i', $userID);
|
$me = $db->queryFirstRow('SELECT `no`, nation, troop FROM general WHERE `owner`=%i', $userID);
|
||||||
|
|
||||||
|
|
||||||
|
if($name && mb_strwidth($name) > 18){
|
||||||
|
$name = mb_strimwidth($name, 0, 18);
|
||||||
|
}
|
||||||
|
|
||||||
$name = trim($name);
|
$name = trim($name);
|
||||||
if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
|
if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
|
||||||
$db->insert('troop',[
|
$db->insert('troop',[
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ $defaultCheck = [
|
|||||||
'integerArray'=>[
|
'integerArray'=>[
|
||||||
'destNationIDList', 'destGeneralIDList'
|
'destNationIDList', 'destGeneralIDList'
|
||||||
],
|
],
|
||||||
'lengthBetween'=>[
|
'stringWidthBetween'=>[
|
||||||
['nationName', 1, 9]
|
['nationName', 1, 18]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -92,7 +92,7 @@ echo getInvitationList($nationList);
|
|||||||
<tr>
|
<tr>
|
||||||
<td width=498 align=right id=bg1>장수명</td>
|
<td width=498 align=right id=bg1>장수명</td>
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
<input type=text name=name maxlength=9 size=18 style=color:white;background-color:black; value=<?=$member['name']?>>(9글자 이내)
|
<input id="generalName" type=text name=name maxlength=18 size=18 style="color:white;background-color:black;" value="<?=$member['name']?>">(전각 9글자, 반각 18글자 이내)
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
+3
-3
@@ -18,7 +18,7 @@ $v
|
|||||||
'intel',
|
'intel',
|
||||||
'character',
|
'character',
|
||||||
])
|
])
|
||||||
->rule('lengthBetween', 'name', 1, 9)
|
->rule('stringWidthBetween', 'name', 1, 18)
|
||||||
->rule('min', [
|
->rule('min', [
|
||||||
'leader',
|
'leader',
|
||||||
'power',
|
'power',
|
||||||
@@ -98,14 +98,14 @@ if ($gameStor->maxgeneral <= $gencount) {
|
|||||||
</script>");
|
</script>");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (mb_strlen($name) < 1) {
|
if ($name == '') {
|
||||||
echo("<script>
|
echo("<script>
|
||||||
window.alert('이름이 짧습니다. 다시 가입해주세요!')
|
window.alert('이름이 짧습니다. 다시 가입해주세요!')
|
||||||
history.go(-1)
|
history.go(-1)
|
||||||
</script>");
|
</script>");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (mb_strlen($name) > 9) {
|
if (mb_strwidth($name) > 18) {
|
||||||
echo("<script>
|
echo("<script>
|
||||||
window.alert('이름이 유효하지 않습니다. 다시 가입해주세요!')
|
window.alert('이름이 유효하지 않습니다. 다시 가입해주세요!')
|
||||||
history.go(-1)
|
history.go(-1)
|
||||||
|
|||||||
@@ -32,6 +32,60 @@ function isInt(n) {
|
|||||||
return +n === n && !(n % 1);
|
return +n === n && !(n % 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
;(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로 재 변환
|
* object의 array를 id를 key로 삼는 object로 재 변환
|
||||||
* @param {Array.{id: Object}} arr id를 가진 object의 array
|
* @param {Array.{id: Object}} arr id를 가진 object의 array
|
||||||
|
|||||||
@@ -164,7 +164,24 @@ jQuery(function($){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var $generalName = $('#generalName');
|
||||||
|
if($generalName.on('change keyup paste', function(){
|
||||||
|
var generalName = $generalName.val();
|
||||||
|
var len = mb_strwidth(generalName);
|
||||||
|
if(len == 0 || len > 18){
|
||||||
|
$generalName.css('color','red');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$generalName.css('color','white');
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
$('#join_form').submit(function(){
|
$('#join_form').submit(function(){
|
||||||
|
var generalName = $generalName.val();
|
||||||
|
if(mb_strwidth(generalName) > 18){
|
||||||
|
alert('장수 이름이 너무 깁니다!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var currentStatTotal = parseInt($leader.val()) + parseInt($power.val()) + parseInt($intel.val());
|
var currentStatTotal = parseInt($leader.val()) + parseInt($power.val()) + parseInt($intel.val());
|
||||||
if(currentStatTotal < defaultStatTotal){
|
if(currentStatTotal < defaultStatTotal){
|
||||||
if(!confirm('현재 능력치 총합은 {0}으로, {1}보다 낮습니다. 장수 생성을 진행할까요?'.format(currentStatTotal, defaultStatTotal))){
|
if(!confirm('현재 능력치 총합은 {0}으로, {1}보다 낮습니다. 장수 생성을 진행할까요?'.format(currentStatTotal, defaultStatTotal))){
|
||||||
|
|||||||
+2
-2
@@ -1306,7 +1306,7 @@ function command_46($turn, $command) {
|
|||||||
- 명 가 : <font color=cyan>기술↑ 인구↑</font> <font color=magenta>쌀수입↓ 수성↓</font><br>
|
- 명 가 : <font color=cyan>기술↑ 인구↑</font> <font color=magenta>쌀수입↓ 수성↓</font><br>
|
||||||
|
|
||||||
<form name=form1 action=c_double.php method=post>
|
<form name=form1 action=c_double.php method=post>
|
||||||
국명 : <input type=text name=name size=18 maxlength=9 style=text-align:right;color:white;background-color:black>
|
국명 : <input type=text name=name size=18 maxlength=18 style=text-align:right;color:white;background-color:black>
|
||||||
색깔 : <select name=double size=1>
|
색깔 : <select name=double size=1>
|
||||||
<?php
|
<?php
|
||||||
foreach(GetNationColors() as $idx=>$color) {
|
foreach(GetNationColors() as $idx=>$color) {
|
||||||
@@ -1643,7 +1643,7 @@ function command_53($turn, $command) {
|
|||||||
|
|
||||||
echo "
|
echo "
|
||||||
</select>
|
</select>
|
||||||
통합국명 : <input type=text name=nationname size=18 maxlength=9 style=text-align:right;color:white;background-color:black>
|
통합국명 : <input type=text name=nationname size=18 maxlength=18 style=text-align:right;color:white;background-color:black>
|
||||||
<input type=submit value=통합제의>
|
<input type=submit value=통합제의>
|
||||||
<input type=hidden name=command value=$command>";
|
<input type=hidden name=command value=$command>";
|
||||||
for($i=0; $i < count($turn); $i++) {
|
for($i=0; $i < count($turn); $i++) {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ use function \sammo\{
|
|||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
use sammo\CityConst;
|
use sammo\CityConst;
|
||||||
|
use function sammo\getNationTypeClass;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
protected function argTest():bool{
|
protected function argTest():bool{
|
||||||
$nationName = $this->arg['nationName']??null;
|
$nationName = $this->arg['nationName']??null;
|
||||||
$nationType = $this->arg['nationType']??null;
|
$nationType = $this->arg['nationType']??null;
|
||||||
$colorType = $this->arg['colotType']??null;
|
$colorType = $this->arg['colorType']??null;
|
||||||
|
|
||||||
if($nationName === null || $nationType === null || $colorType === null){
|
if($nationName === null || $nationType === null || $colorType === null){
|
||||||
return false;
|
return false;
|
||||||
@@ -36,6 +37,23 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mb_strwidth($nationName) > 18){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
$nationTypeClass = getNationTypeClass($nationType);
|
||||||
|
}
|
||||||
|
catch(InvalidArgumentException $e){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->arg = [
|
||||||
|
'nationName'=>$nationName,
|
||||||
|
'nationType'=>$nationType,
|
||||||
|
'colorType'=>$colorType
|
||||||
|
];
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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로 재 변환
|
* object의 array를 id를 key로 삼는 object로 재 변환
|
||||||
|
|||||||
+8
-1
@@ -42,6 +42,13 @@ function changeInstallMode(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready( function () {
|
$(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();
|
changeInstallMode();
|
||||||
var parentPathname = location.pathname.split('/').slice(0,-2).join('/');
|
var parentPathname = location.pathname.split('/').slice(0,-2).join('/');
|
||||||
$('#serv_host').val(
|
$('#serv_host').val(
|
||||||
@@ -133,7 +140,7 @@ $(document).ready( function () {
|
|||||||
},
|
},
|
||||||
nickname:{
|
nickname:{
|
||||||
required: true,
|
required: true,
|
||||||
maxlength: 9,
|
maxwidth: 18,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
messages: {
|
messages: {
|
||||||
|
|||||||
+7
-1
@@ -1,4 +1,10 @@
|
|||||||
$(document).ready( function () {
|
$(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( {
|
$( "#main_form" ).validate( {
|
||||||
rules: {
|
rules: {
|
||||||
username: {
|
username: {
|
||||||
@@ -28,7 +34,7 @@ $(document).ready( function () {
|
|||||||
},
|
},
|
||||||
nickname:{
|
nickname:{
|
||||||
required: true,
|
required: true,
|
||||||
maxlength: 9,
|
maxwidth: 18,
|
||||||
remote: {
|
remote: {
|
||||||
url: "j_check_dup.php",
|
url: "j_check_dup.php",
|
||||||
type: "post",
|
type: "post",
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ function checkNicknameDup($nickname){
|
|||||||
return '닉네임을 입력해주세요';
|
return '닉네임을 입력해주세요';
|
||||||
}
|
}
|
||||||
|
|
||||||
$length = mb_strlen($nickname, 'utf-8');
|
$length = mb_strwidth($nickname, 'utf-8');
|
||||||
if($length < 1 || $length > 9){
|
if($length < 1 || $length > 18){
|
||||||
return '적절하지 않은 길이입니다.';
|
return '적절하지 않은 길이입니다.';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user