全角半角判断

2008-08-19
  • 半角范围:u0000 - u00FF, uFF61 - uFF9F, uFFE8 - uFFEE

  • 全角范围:

    • 全角数字(0-9) uFF10 - uFF19
    • 全角大文字(A-Z): uFF21 - uFF3A
    • 全角小文字(a-z): uFF41 - uFF5A
    • 全角平仮名:u3040 - u309F
    • 全角片仮名:u30A0 - u30FF
    • 全角Latin: uFF01 - uFF5E
    • 全角Symbol: uFFE0 - uFFE5

    以下是判断全角半角混合字符串的字节数是否超过指定的字节数。(半角被认为是一个字节)

    1. function isOverBytes(s, maxbytes)

    2. {

    3. var i = 0;

    4. var bytes = 0;

    5. var uFF61 = parseInt("FF61", 16);

    6. var uFF9F = parseInt("FF9F", 16);

    7. var uFFE8 = parseInt("FFE8", 16);

    8. var uFFEE = parseInt("FFEE", 16);

    9. while (i < s.length)

    10. {

    11. var c = parseInt(s.charCodeAt(i));

    12. if (c < 256) {

    13. bytes = bytes + 1;

    14. }

    15. else {

    16. if ((uFF61 <= c) && (c <= uFF9F)) {

    17. bytes = bytes + 1;

    18. } else if ((uFFE8 <= c) && (c <= uFFEE)) {

    19. bytes = bytes + 1;

    20. }

    21. else {

    22. bytes = bytes + 2;

    23. }

    24. }

    25. if (bytes > maxbytes) {

    26. return true;

    27. }

    28. i = i + 1;

    29. }

    30. return false;

    31. }

原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

Posted by 54chen web相关