正则表达式分别在java中和在js中如何使用的
应业务需要,可能需要对字符串进行各种比较或者分割等等操作,如果使用传统代码去完成上述功能,那工作量将是相当的庞大,所以在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()方法即可!