【问题标题】:check if user input is valid ascii code or not in java在java中检查用户输入是否是有效的ascii代码
【发布时间】:2017-05-12 19:27:17
【问题描述】:

我正在实现代码以检查用户输入是否具有有效的 ascii 代码。为了做到这一点,我找到了一些简单的方法,如下所示,

if (!firstName.matches("\\p{ASCII}*")) { 
    return error;   
}

我在本地是基于windows操作系统的,我发现它运行良好。

经过测试,我部署到我们的 QA 系统上,它在 linux 系统上,它永远不会工作,无论是否有效的 ascii,它都会返回错误。 以前有人遇到过这种问题吗?可以给点建议吗?

【问题讨论】:

  • 我猜字符串包含非打印字符。尝试打印字符串的长度,以及字符串中每个字符的整数值。
  • 我认为@VGR 和@RC 说的是同一件事。您可能不需要测试matches,您需要了解和控制您的测试数据(firstName)。顺便说一句——允许一个人的名字包含控制字符(例如 ␊ U+000A)但不是非常常见的字母字符(例如 é)是很奇怪的——除非您完全确定您的存储或其他系统仅限于 ASCII。

标签: java ascii


【解决方案1】:

试试这个正则表达式:

^[\\u0000-\\u007F]*$

^[ -~]*$ 用于可打印的 ASCII 字符(空格和波浪号之间的所有字符)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多