在我的用户输入字段中,我想允许某些特殊字符、字母和数字的组合。我应该确保从任何语言键入时正则表达式模式都允许此设置。基本上我构建的这个正则表达式也应该支持 unicode 表示。如何使用 Java 中的 Pattern 类来实现这一点?
\n\n这里给出了我尝试过的示例代码。但这不包括除英语之外的任何其他语言的字母/数字。
\n\nprivate static final String ADDRESS_LINE_PATTERN = "[A-Za-z0-9,\\\\s#\\\\-.]+";\n\n\n public static boolean isInputValid(String patternToValidate, String input){\n Pattern p = Pattern.compile(patternToValidate);\n Matcher m = p.matcher(input);\n boolean b = m.matches();\n return b;\n\n }\n\npublic static void main(){\nString value = "\xe3\x82\xb3\xe3\x83\xad\xe3\x83\xb3";\nSystem.out.println("Value:" + value + " - valid? " + isInputValid(ADDRESS_LINE_PATTERN, value));\n}\nRun Code Online (Sandbox Code Playgroud)\n
您可以用来\\p{Alnum}匹配任何语言的任何类型的字母或数字。
private static final String ADDRESS_LINE_PATTERN = "[\\p{Alnum},\\s#\\-.]+";
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Patternjavadoc 。
| 归档时间: |
|
| 查看次数: |
4627 次 |
| 最近记录: |