2014年3月28日金曜日

ajaxzip3 郵便番号の全角半角変換 2014/3/28のsvnへのpatch

たぶん本家にお送りしても拒絶されるかもしれないajaxzip3の全角半角変換パッチ
AS IS で自己責任でお願いします。(UTF-8以外でテストしてません)
svn 2014/3/28のhttp-source.jsへのパッチ
多分、行の長い所は折り返しで表示が崩れるかも知れませんが
ひとつよしなに
<pre>
*** ajaxzip3/ajaxzip3-source.js Fri Mar 28 16:28:21 2014
--- ajaxzip3-mod/ajaxzip3-source.js     Fri Mar 28 16:36:42 2014
***************
*** 67,74 ****

      // 郵便番号を数字のみ7桁取り出す
  //    var zipoptimize = function(AjaxZip3.fzip1, AjaxZip3.fzip2){
!         var vzip = AjaxZip3.fzip1.value;
!         if ( AjaxZip3.fzip2 && AjaxZip3.fzip2.value ) vzip += AjaxZip3.fzip2.v
alue;
          if ( ! vzip ) return;
          AjaxZip3.nzip = '';
          for( var i=0; i<vzip.length; i++ ) {
--- 67,74 ----

      // 郵便番号を数字のみ7桁取り出す
  //    var zipoptimize = function(AjaxZip3.fzip1, AjaxZip3.fzip2){
!       var vzip = AjaxZip3.z2h_ascii(AjaxZip3.fzip1.value);
!         if ( AjaxZip3.fzip2 && AjaxZip3.fzip2.value ) vzip += AjaxZip3.z2h_asc
ii(AjaxZip3.fzip2.value);
          if ( ! vzip ) return;
          AjaxZip3.nzip = '';
          for( var i=0; i<vzip.length; i++ ) {
***************
*** 212,217 ****
--- 212,242 ----
      document.getElementsByTagName("head").item(0).appendChild(scriptTag);
     };

+ // 全角半角変換
+ AjaxZip3.z2h_ascii = function(src) {
+     var str = new String;
+     var len = src.length;
+     for (var i = 0; i < len; i++) {
+         var c = src.charCodeAt(i);
+         if (c >= 65281 && c <= 65374 && c != 65340) {
+             str += String.fromCharCode(c - 65248);
+         } else if (c == 8217) {
+             str += String.fromCharCode(39);
+         } else if (c == 8221) {
+             str += String.fromCharCode(34);
+         } else if (c == 12288) {
+             str += String.fromCharCode(32);
+         } else if (c == 65507) {
+             str += String.fromCharCode(126);
+         } else if (c == 65509) {
+             str += String.fromCharCode(92);
+         } else {
+             str += src.charAt(i);
+         }
+     }
+     return str;
+ }
+
  function zipdata(data){
      AjaxZip3.callback(data);
  };
</pre>

0 件のコメント: