You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android:验证半角日文字符

验证EditText输入仅为半角日文字符(点击按钮触发)

我刚好处理过类似的需求,核心就是用正则表达式精准匹配半角日文字符范围,再在按钮点击事件里执行验证逻辑,完全符合你要的“仅在点击操作按钮时验证”的要求。

第一步:明确半角日文字符的范围

半角日文字符主要指半角假名(アイウエオ…ハヒフヘホ…),对应的Unicode区间是 U+FF61 到 U+FF9F;如果还需要允许半角数字(0-9)、半角英文字母(a-z、A-Z),可以把这些范围也加入正则。

第二步:实现验证逻辑

1. 编写匹配正则

针对纯半角假名的正则:

^[。-゚]*$

如果需要包含半角数字、半角英文:

^[。-゚0-9a-zA-Z]*$

2. 在按钮点击事件中执行验证

下面以Android为例,分别给出Kotlin和Java的实现:

Kotlin 示例

// 获取EditText和按钮实例
val editText = findViewById<EditText>(R.id.your_edit_text)
val confirmBtn = findViewById<Button>(R.id.your_confirm_btn)

// 点击按钮触发验证
confirmBtn.setOnClickListener {
    val inputText = editText.text.toString().trim()
    // 这里用包含半角假名、数字、英文的正则,可根据需求替换
    val regex = "^[。-゚0-9a-zA-Z]*$".toRegex()
    
    if (inputText.isEmpty()) {
        Toast.makeText(this, "请输入内容", Toast.LENGTH_SHORT).show()
        return@setOnClickListener
    }
    
    if (regex.matches(inputText)) {
        // 验证通过,执行后续逻辑
        Toast.makeText(this, "输入符合要求", Toast.LENGTH_SHORT).show()
    } else {
        // 验证失败,提示用户
        Toast.makeText(this, "仅允许输入半角日文字符", Toast.LENGTH_SHORT).show()
        // 可选:将EditText内容清空或定位到错误位置
        editText.requestFocus()
    }
}

Java 示例

// 获取EditText和按钮实例
EditText editText = findViewById(R.id.your_edit_text);
Button confirmBtn = findViewById(R.id.your_confirm_btn);

// 点击按钮触发验证
confirmBtn.setOnClickListener(v -> {
    String inputText = editText.getText().toString().trim();
    // 正则表达式
    String regex = "^[。-゚0-9a-zA-Z]*$";
    
    if (inputText.isEmpty()) {
        Toast.makeText(this, "请输入内容", Toast.LENGTH_SHORT).show();
        return;
    }
    
    if (inputText.matches(regex)) {
        // 验证通过
        Toast.makeText(this, "输入符合要求", Toast.LENGTH_SHORT).show();
    } else {
        // 验证失败
        Toast.makeText(this, "仅允许输入半角日文字符", Toast.LENGTH_SHORT).show();
        editText.requestFocus();
    }
});

额外说明

  • 如果需要严格限制仅半角假名(不含数字、英文),直接把正则换成 ^[。-゚]*$ 即可
  • 要是需要排除某些特殊的半角符号,比如半角句号。、逗号、,可以在正则里去掉对应的字符,或者用反向匹配
  • 验证时记得先trim()掉首尾空格,避免用户输入空格干扰结果

内容的提问来源于stack exchange,提问作者viper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:02:42