文档章节

正则表达式分别在java中和在js中如何使用的

o
 osc_mervd488
发布于 2018/04/24 14:16
字数 731
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

应业务需要,可能需要对字符串进行各种比较或者分割等等操作,如果使用传统代码去完成上述功能,那工作量将是相当的庞大,所以在jdk1.4之后就出现了正则表达式。

1,在java中正则表达式的使用

  a)匹配字符串;

public static void main(String[] args) {
String qq
= "123a45664"; String regex = "[1-9]\\d{4,14}"; boolean flag = qq.matches(regex); if(flag){ System.out.println(qq+"...is ok"); } else{ System.out.println(qq+"... 不合法"); }

//匹配电话号码

      String tel="14275624713";

      String telreg="1[3,5,8][0-9]{3,11}";
      System.out.println(tel.matches(telreg));



}

  b)分割

public static void main(String[] args) {
        
        String str="aqwe axcvafg hjaolm";
        
        String strReg=" ";
        
        String []arr=str.split(strReg);
        for (String string : arr) {
            System.out.println(string);
        }
    }

其中split()方法还有重载的方法

public static void main(String[] args) {
        
        String str="aqweaxcvafghjaolm";
        
        String strReg="a";
        
        String []arr=str.split(strReg,7);
        for (String string : arr) {
            System.out.println(string);
        }
    }

上述代码输出结果为:

qwe
xcv
fghj
olm

如果将7改为2,则输出结果为:

qweaxcvafghjaolm

 
如果将7改为5,则输出结果为:

qwe
xcv
fghj
olm

由此可以得知,上述重载的split的第二个参数表示的意思是将原字符串分割为几段,从一开始分开始,但是最多能分的段数为实际情况的段数,若超过则按照实际情况的来  

  c)替代

public static void main(String[] args) {
        
        String str="aqweaxdvafghjaolm";
        
        String strReg="a";
        
        String str1=str.replaceAll(strReg, "c");
        System.out.println(str1);
    }

上述代码是将a都替换成c,其实替换是可以和正则结合在一起使用的如下代码

public static void main(String[] args) {
        
        String str="aqwea41256ghjaolm";
        
        String strReg="[0-9]";
        
        String str1=str.replaceAll(strReg, "c");
        System.out.println(str1);
    }

上述代码表示将字符串中的所有数字都替换成c

  d)获取

从已存在的字符串中获取符合一定规则的子字符串

public static void main(String[] args) {
        
        String str = "yin yu shi wo zui cai de yu yan";
        System.out.println(str);
        String reg = "\\b[a-z]{3}\\b";//匹配只有三个字母的单词

        //将规则封装成对象。
        Pattern p = Pattern.compile(reg);

        //让正则对象和要作用的字符串相关联。获取匹配器对象。
        Matcher m  = p.matcher(str);

       
        
        while(m.find())
        {
            System.out.println(m.group());
            System.out.println(m.start()+"...."+m.end());
                // start()  字符的开始下标(包含)
                //end()  字符的结束下标(不包含)
        }
    }

 

2 在js中

我们都知道,在注册功能时,需要填入很多的信息,那么对那些填入的信息进行判断就需要很多的工作了。下面就介绍正则在js中是如何使用的

  对移动电话号码进行判断:

    首先需要获得该文本框内用户输入的移动电话号码的值,

    然后在进行比较。具体代码如下:

    

function telTag{
        var tel =$("tel").val();
        var telReg="/^1[3,5,8][0-9]{3-11}$/";
       alert(telReg.test(tel));

}

  对其他数据的判断也是一样,先获取到值,然后写出正确的正则表达式(网上有很多写好了的),在直接调用test()方法即可!

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

聚焦餐饮行业,研究院昨发布数据显示

谈话,聚焦餐饮行业,研究院昨发布数据显示,今年上半年,全国餐饮行业招聘需求增长46.18%,平均月薪6387元.随着餐饮行业的快速发展,"如何留人"也成为餐饮企业的思考题. 记者了解到,中国饭店协会...

点击fojewio
28分钟前
20
0
3·15晚会曝光上海氪信、招财旺旺SDK包泄露隐私 后台上传交易验证码敏感信息

来源 | 央视 7月16日,央视3·15晚会曝光国美易卡、美的空调遥控器、姨妈日历、银码头等50多款软件中内嵌的SDK包读取、上传用户隐私问题。上海氪信信息技术有限公司、北京招财旺旺信息技术有...

镭射财经
37分钟前
9
0
名称=''的无效表单控件不可聚焦 - An invalid form control with name='' is not focusable

问题: I have an acute problem on my website. 我的网站上有一个严重的问题。 In Google Chrome some customers are not able to proceed to my payment page. 在Google Chrome浏览器中,某......

技术盛宴
38分钟前
14
0
Hacker News 简讯 2020-07-17

更新时间: 2020-07-17 00:00 D 2.093.0 - (dlang.org) D 2.093.0 得分:32 | 评论:2 Let’s avoid talk of ‘chemical imbalance’: it’s people in distress - (psyche.co) 让我们避免谈论“......

FalconChen
43分钟前
80
0
【LeetCode】 59 在排序数组中查找元素的第一个和最后一个位置

题目: 解题思路: 二分法 https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/zai-pai-xu-shu-zu-zhong-cha-zhao-yuan-su-de-di-yi-/ 代......

JaneRoad
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部