正则表达式,前面三个是数字结尾一定要是一个大写字母的正则表达式

qq_35167499 2016-12-19 03:33:54
求两个正则表达式
1:前面三个是数字最后一个是大写字母 如11B,111B,1B这样
2:前面是小数,最后一个是固定的大写字母M,如2.0M,1.6M这样

谢谢大神了
...全文
853 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35167499 2016-12-20
  • 打赏
  • 举报
回复
引用 10 楼 u010890358 的回复:
[quote=引用 9楼我是你的主体 的回复:][quote=引用 8 楼 u010890358 的回复:] [quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010890358 的回复:] [quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉[/quote]还有输错的是return false怎么会替换掉呢?输对的替换才是正确逻辑?[/quote] 我的意思是在输入框输入,比如我输入1.0A,这个是不符合的,应该把A去掉,直到输入1.0M,这样才不会替换onkeyup="value=value.replace(/\d+(\.\d{0,1})?/,'')"我写的这个输入1.0,是对的,输入1.00就会去掉后面的一个0保留一位小数,但是就是不知道怎么加上大写字母M且只能有一个字母[/quote]连问题需求都描述不清。真是浪费我时间[/quote]呵呵,自己看我自己回复的一楼和二楼,value.replace明显就是替换。。。。醉了
青元子 2016-12-20
  • 打赏
  • 举报
回复
引用 9楼我是你的主体 的回复:
[quote=引用 8 楼 u010890358 的回复:] [quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010890358 的回复:] [quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉[/quote]还有输错的是return false怎么会替换掉呢?输对的替换才是正确逻辑?[/quote] 我的意思是在输入框输入,比如我输入1.0A,这个是不符合的,应该把A去掉,直到输入1.0M,这样才不会替换onkeyup="value=value.replace(/\d+(\.\d{0,1})?/,'')"我写的这个输入1.0,是对的,输入1.00就会去掉后面的一个0保留一位小数,但是就是不知道怎么加上大写字母M且只能有一个字母[/quote]连问题需求都描述不清。真是浪费我时间
qq_35167499 2016-12-20
  • 打赏
  • 举报
回复
引用 8 楼 u010890358 的回复:
[quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010890358 的回复:] [quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉[/quote]还有输错的是return false怎么会替换掉呢?输对的替换才是正确逻辑?[/quote] 我的意思是在输入框输入,比如我输入1.0A,这个是不符合的,应该把A去掉,直到输入1.0M,这样才不会替换onkeyup="value=value.replace(/\d+(\.\d{0,1})?/,'')"我写的这个输入1.0,是对的,输入1.00就会去掉后面的一个0保留一位小数,但是就是不知道怎么加上大写字母M且只能有一个字母
青元子 2016-12-19
  • 打赏
  • 举报
回复
引用 6楼我是你的主体 的回复:
[quote=引用 5 楼 u010890358 的回复:] [quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉[/quote]还有输错的是return false怎么会替换掉呢?输对的替换才是正确逻辑?
青元子 2016-12-19
  • 打赏
  • 举报
回复
引用 6楼我是你的主体 的回复:
[quote=引用 5 楼 u010890358 的回复:] [quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉[/quote]你先放main里面测试。
qq_35167499 2016-12-19
  • 打赏
  • 举报
回复
引用 5 楼 u010890358 的回复:
[quote=引用 4楼Tency陈 的回复:]第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可[/quote]好像不行,我试了,输错的,不会替换掉
青元子 2016-12-19
  • 打赏
  • 举报
回复
引用 4楼Tency陈 的回复:
第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
如果最后一个固定M把[A-Z]改成M即可
青元子 2016-12-19
  • 打赏
  • 举报
回复
第一个 (\\d){1,3}[A-Z] 第二个 \\d{1,}\\.\\d{1,}[A-Z]$
brooklyng60 2016-12-19
  • 打赏
  • 举报
回复
我的正则表达式也都是从网上找的,懒得研究,呵呵。感觉这东西没什么。不断累积而已,目前只有常见的 1.位数正则要求 2.电话整个要求 3.密码正则要求 4.邮箱正则要求 5.数字正则要求 6.登录名(一般网站都是字母加数字组合,多少位)要求 等上述通用的
qq_35167499 2016-12-19
  • 打赏
  • 举报
回复
第一个onkeyup="value=value.replace(/[a-zA-Z]{1}\d{1,3}/, '')",最后一个是大写字母没有做限定,只能一个字母
qq_35167499 2016-12-19
  • 打赏
  • 举报
回复
我第二个这样写onkeyup="value=value.replace(/\d+(\.\d{0,1})?M$/,'')",但是测试不对
正则表达式1、 掌握正则表达式的基本用法 1.2. 正则表达式简介 1、 正则表达式一个强大的字符串处理工具,可以对字符串进行、查找、提取、分割、替换等操作。它简单而且实用,是一个用于匹配字符串的模板,我们定义的任意的一个字符串都可以看成是一个正则表达式。 2、 String类也提供了几个和正则表达式有关的几个特殊方法 1) Boolean matches(String regex):判断该字符串是否匹配指定的正则表达式。 2) String replaceAll(String regex,String replacement):返回该字符串中所有匹配正则表达式的子串,然后替换成replacement指定的字符串。 3) String replaceFirst(String regex,String replacement);返回该字符串中第一个匹配正则表达式的子串替换成replacement 后的新字符串。 4) String[] split(String regex)根据给定正则表达式拆分该字符串后得到的字符串数组。 3、 创建正则表达式正则表达式中使用的常见字符: 1) \t:制表符(‘\u0009’). 2) \n:换行(‘\u000A’)。 3) \r:回车(‘\u000d’) 4) …… 除此之外正则表达式中有一些特殊的字符,这些字符在正则表达式中有特殊的用途,如前面介绍的反斜线(\),如果需要匹配这些字符,必须首先将这些字符转义,也就是再前面添加一个反斜线(\).正则表达式中的特殊字符: 1)$:匹配一行的结尾。要匹配$自身用\$ 2)^:匹配一行的开头。要匹配^字符本身用\^. 3)():标记子表达式的开始位置和结束位置,要匹配这些字符用\(,\). 4)[]:确定中括号表达式的开始位置和结束位置。 例如:字符集 [abc]:表示内容可能是a、b、c字母中的任意一个。 [^abc]:表示内容不是a、b、c字母的任意一个 [a-zA-Z]:全部的英文字母 [0-9]:全部的数字 5){}:用于标记字表达式的出现额度。 {n}:出现正好n次。 {n,m}:出现n~m次 {n,}:出现n次以上。 6)*:指定前面表达式可以出现零次或多次。 7)+:指定前面表达式可以出现一次或多次。 8)?: 指定前面表达式可以出现零次或1次。 9).:匹配换行符\n之外的任何字符。 10)\:用于转义下一个字符 11)|:指定两项之间任选一项,如果要匹配|,请使用\| 上面的正则表达式依然匹配单个字符,这是因为还未在正则表达式中使用”通配符”,“通配符”是可以匹配多个字符的特殊字符。正则表达式中”通配符”远远超出了普通通配符的功能,它们被称为预定义字符:例如 1).:可以匹配任何字符 2)\d:匹配数字 3)\D:匹配非数字 4)\s:匹配所有空白字符,包括空格、制表符、回车符、换页符、换行符等 5)\S:匹配所有非空白字符 6)\w:匹配所有单词字符,包括0~9所有数字,26个英文字母和下划线(_) 7)\W:匹配所有非单词字符。 说明:上面的预定义字符:d是digit的意思,代表数字;s是space的意思,代表空白;w是word的意思,代表单词。d、s、w的大写形式恰好匹配与之相反的字符。 例如 :c\wt 可以匹配cat,cbt,c0t,c9t等 \d\d\d-\d\d\d\-\d\d\d可以匹配000-000-000形式的电话号码。 \\d{3}-\\d{3}-\\d{3} 正则表达式还支持圆括号表达式,圆括号表达式用于将多个表达式组成一个子表达式,圆括号中可以使用或运算符(|),例如正则表达式 “(public|protected|private)”用于匹配Java三个访问控制符其中之一。 4、 使用正则表达式 一旦程序中定义了正则表达式之后,就可以使用Pattern和Matcher来使用正则表达式。 Pattern对象是正则表达式编译后在内存中的表示形式,因此,正则表达式字符串必须先编译为Pattern对象,然后再利用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可共享同一个Pattern对象。 例如:典型的调用顺序 //将一个字符串编译成Pattern对象 Pattern p=Pattern.complie(“a*b”); //使用Pattern对象创建Matcher对象 Matcher m=p.matcher(“aaaab”); Boolean b=m.matchers();//返回true. 上面的Pattern对象可以重复使用多次,如果某个正则表达式仅需一次使用,可直接使用Pattern类的静态matches方法,此方法自动把指定字符串编译成匿名的Pattern对象,并执行匹配。 Boolean b=Pattern.matches(“a*b”,”aaaab”);//返回true. 5、

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧