java和js中正则表达式的用法和区别

时间:2021-07-05 09:00:23

首先在java中,

1、匹配正则表达式使用matches

如string qq = 36786256;

s.matches("[1-9]\\d{4,10}");

2、也可以用matcher

Pattern  p = Pattern.compile("A\\d");//建立模式对象

Matcher m = p.matcher"gaha");

if(m.matches)

{

System.out.println("完全匹配")

}

else

{

System.out.println("不完全匹配")

}



在js中

<script>

function dochecked()
{

var pattern = /^\d+[.]?\d+$/; //前面加上^后面加上$ 表示这句话要完全匹配。

var vf1 = document.queryForm.f2Text.value; //文本框

var va1 = document.queryForm.a2.checked; //单选按钮

if(va1){

if(!patrn.test(vf1))

{

//这里使用exec方法匹配,对string进行正则处理,并返回匹配结果.array[0]为原字符串,array[i]为匹配在整个被搜索字符串中的位置
alert("有误");

return;

}

else

{

alert("成功");

}
}

</script>


java和js正则表达式的区别

首先

java中需要转义字符\\d

而js中直接用\d


附:


exec:对string进行正则处理,并返回匹配结果.array[0]为原字符串,array[i]为匹配在整个被搜索字符串中的位置。
test:测试string是否包含有匹配结果,包含返回true,不包含返回null。
match(pattern):根据pattern进行正则匹配,如果匹配到,返回匹配结果,如匹配不到返回null
search(pattern):根据pattern进行正则匹配,如果匹配到一个结果,则返回它的索引数;否则返回-1
replace(pattern,replacement):根据pattern进行正则匹配,把匹配结果替换为replacement
split(pattern):根据pattern进行正则分割,返回一个分割的数组
实例:
function checkForm() {
 

   var u =document.form_name.check.value;
    var s =/^[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)*@[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)*$/;
    var a =s.exec(u);
    var a =s.test(u);
    var a =u.match(s);
    var a =u.search(s);
   alert(a);
}
replace
最简单的算是能力就是简单的字符替换。示例代码如下:
 var u = "javascript is a good scriptlanguage";
 //在此我想将字母a替换成字母A
 var s = /a/g;
var a = u.replace(s,"A");
</script>
split

<script type="text/javascript">
var str="How are you doing today?"
document.write(str.split(" ") + "<br/>")
document.write(str.split("") + "<br/>")
document.write(str.split(" ",3))
</script>

输出结果为:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you