【问题标题】:Android : Validate half-width Japanese characterAndroid:验证半角日文字符
【发布时间】:2021-02-12 22:42:27
【问题描述】:

这个问题可能已经被问过好几次了,但我没有找到正确的答案,所以我发布了这个问题。我想要做的是验证在编辑文本字段中输入的日文文本只允许半角日文字符。我只想在用户输入文本并点击某个操作按钮后检查验证。

【问题讨论】:

  • 可能的Unicode点范围0xFF61 .. 0xFFDC?
  • 好的,那我该怎么做呢?请帮帮我。
  • Pattern halfwidths = Pattern.compile("[\uFF61-\uFFDC]");this answer 和来自java.util.regex.Pattern official docs 的典型调用序列?可能取决于 java 版本...
  • @JosefZ 请进一步向我解释我无法理解。我希望用户输入字符串文本来验证它是否是半角日文字符
  • @fr3ddie 对不起先生,我解决了我自己面临的问题。社区对你来说似乎已经超过 25 岁了。

标签: java android validation kotlin unicode


【解决方案1】:

好的,所以我遇到了很多解决方案,这个对我有用。 基本上,我有一个日语半角验证正则表达式并将其与我的字符串进行比较。

val halfWidthRegex = "^[ァ-ン゙゚]+\\s?[ァ-ン゙゚]+$"

if(myText?.matches(halfWidthRegex.toRegex()))
  // Valid halfwidth text
else // Invalid halfwidth text.

【讨论】:

    【解决方案2】:

    我创建了方法验证输入的字符是否为half-width kana

    public boolean validate(String c) {
        Pattern pattern = Pattern.compile("[\uff61-\uff9f]");
        return pattern.matcher(c).matches();
    }
    

    我知道您要检查的是仅由半角假名组成的书面文本,是吗?为此,在您单击验证的按钮的onClick() 中,编写如下内容:

    for (int i = 0; i < textToValidate.length(); i++) {
        if (validate(textToValidate.charAt(i))) {
            continue;
        } else {
            System.out.println("Text wasn't written in half-width kana.");
            return;
        }
    }
    System.out.println("Text was written in half-width kana.");
    

    如果我的回答对你有帮助,请告诉我。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      相关资源
      最近更新 更多