目录前言#1. 匹配字母(大写/小写)和数字的字符#2. 使用正则表达式,将给定的字符串进行处理,只保留字母和数字:#3. 添加单元测试:附:Android 利用正则表达式 控制ed
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式:[^a-zA-Z0-9]
我们需要将非字母和数字进行替换空替换,即需要匹配非字母和数字,
正则表达式为: [^a-zA-Z0-9]
fun String.fORMatToAlphanumeric(): String = this.replace("[^a-zA-Z0-9]*".toRegex(), "")
@Test
fun formatToAlphanumericTest() {
val expectedString = "33K212A"
val stringWithDash = "33K-21-2A"
val stringWithSpace = "33-K21 2A "
assertEquals(expectedString, stringWithDash.formatToAlphanumeric())
assertEquals(expectedString, stringWithSpace.formatToAlphanumeric())
}
通过正则表达式来判断。下面的例子只允许显示字母、数字和汉字。
public static String stringFilter(String str)throws PatternSyntaxException{
// 只允许字母、数字和汉字
String regEx = "[^a-zA-Z0-9\u4E00-\u9FA5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
//点击事件调用上述方法
tv_other.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
nicheng = ed_xiugainicheng.getText().toString();
String str = stringFilter(nicheng.toString());
if(!nicheng.equals(str)){
Toast.makeText(WoXiuGaiNiChengActivity.this, "不能输入非法字符!" , Toast.LENGTH_SHORT).show();
}
}
到此这篇关于Android如何使用正则表达式只保留字母数字的文章就介绍到这了,更多相关Android正则保留字母数字内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Android如何使用正则表达式只保留字母数字
本文链接: https://lsjlt.com/news/149820.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0