我有一个基于用户输入的数据库查询,但是如果用户在搜索中输入任何一个公共字母,应用程序将崩溃。但由于搜索也支持中文字符,我不能简单地阻止所有字符搜索。
我如何编写正则表达式来检查单个英文字符但不包含单个中文字符? “^(a-zA-Z){1} $”“^ \ w {1} $”这些只包括英文字母吗?
我正在考虑使用这样的正则表达式,但是任何更好的解决方案都会受到赞赏:
if(input.matches("^(a-zA-Z){1}$")
{
//Show error
}
else
{
//do query
}
答案 0 :(得分:1)
你应该先修复任何崩溃。要区分英语和中文(CJK)字符,可以使用字符类,例如\p{ASCII}
,\p{Alpha}
表示ASCII,\p{InCJKUnifiedIdeographs}
表示CJK字符。