检查是否混合全角和半角日文字符 JavaScript

问题描述 投票:0回答:1

谁能建议如何在 JavaScript 中检查字符串是否由全角和半角日文字符混合组成?

混合角色由

组成
  1. 假名字符
  2. 数字
  3. 特殊字符
  4. 字母

例子:

Aa!bb123サンプル
javascript cjk
1个回答
0
投票
function checkCharacterWidth(input) {
  var hasFullWidth = false;
  var hasHalfWidth = false;

  for (var i = 0; i < input.length; i++) {
    var charCode = input.charCodeAt(i);
    if (
      (charCode >= 0x0020 && charCode <= 0x007E) || // Half-width characters
      (charCode >= 0xFF61 && charCode <= 0xFF9F) || // Half-width Katakana
      (charCode >= 0xFFA0 && charCode <= 0xFFDC) || // Full-width Roman characters and half-width voiced sound marks
      (charCode >= 0xFFE8 && charCode <= 0xFFEE)    // Half-width punctuation marks and symbols
    ) {
      hasHalfWidth = true;
    } else {
      hasFullWidth = true;
    }

    if (hasFullWidth && hasHalfWidth) {
      return true;
    }
  }

  return false;
}

// Example usage:
var userInput = prompt('Enter your input:');
var hasMixedWidth = checkCharacterWidth(userInput);
console.log('Has mixed width:', hasMixedWidth);
© www.soinside.com 2019 - 2024. All rights reserved.