たぶん本家にお送りしても拒絶されるかもしれない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 件のコメント:
コメントを投稿