ActionScriptで、全角数字を半角に変換するためには、1バイトずつ判定する必要がある。PHPがいかに便利かと思う。
こんな感じです。
応用すれば英文字も対応できるが、もう少しスマートな方法ないかなぁ・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
function tohalf( str ) { var len = str.length; var ret = ""; for ( i = 0; i < len; i++) { var num = str.charAt( i ).charCodeAt( 0 ); switch( num ) { case '0'.charCodeAt( 0 ): case '0'.charCodeAt( 0 ): ret += '0'; break; case '1'.charCodeAt( 0 ): case '1'.charCodeAt( 0 ): ret += '1'; break; case '2'.charCodeAt( 0 ): case '2'.charCodeAt( 0 ): ret += '2'; break; case '3'.charCodeAt( 0 ): case '3'.charCodeAt( 0 ): ret += '3'; break; case '4'.charCodeAt( 0 ): case '4'.charCodeAt( 0 ): ret += '4'; break; case '5'.charCodeAt( 0 ): case '5'.charCodeAt( 0 ): ret += '5'; break; case '6'.charCodeAt( 0 ): case '6'.charCodeAt( 0 ): ret += '6'; break; case '7'.charCodeAt( 0 ): case '7'.charCodeAt( 0 ): ret += '7'; break; case '8'.charCodeAt( 0 ): case '8'.charCodeAt( 0 ): ret += '8'; break; case '9'.charCodeAt( 0 ): case '9'.charCodeAt( 0 ): ret += '9'; break; default: // 数字以外は読み捨てるのでコメントアウト // ret += num; break; } } return ret; } |
No comments yet. You should be kind and add one!
By submitting a comment you grant typista a perpetual license to reproduce your words and name/web site in attribution. Inappropriate and irrelevant comments will be removed at an admin’s discretion. Your email is used for verification purposes only, it will never be shared.