`

正则表达式java与js的不同

 
阅读更多

这里只说一个区别:java的字符串比js的字符串多一个转义符号“\”,工作中遇到的,用正则表达式验证手机号

js:

if(!(/^1[3-9]\d{9}$/.test(mobile))){
            alert("请输入正确的手机号");
           
        } else {
       
            alert("true");
        }

 

java:

// 手机号码格式
    if (!mobile.matches("1([3-9])(\\d{9})")) {     //多了一个转义字符,还有一些^$这样的字符串
        result.setMessage(-1, "请输入正确的手机号码");
        out.print(result);
        return;
    }

 

但是,如果js用显示方式定义正则表达式的话,两者的字符串没区别,如,验证只能输入6个数字:

js:

var reg = new RegExp("^\\d{6}$");
   
        if(!reg.test(verificationCode)){
            alert("请输入正确的验证码");
        }else{
            alert("true");
        }

 

java:

if (!verificationCode.matches("^\\d{6}$")) {
            result.setMessage(-1, "请输入正确的验证码");
            out.print(result);
            return;
        }

 

 

以下内容转自其它网络:

javascript正则表达式和java正则表达式的区别

javascript中的正则表达式和java的正则表达式基本上是相同的,区别在于分组引用和对象,方法

具体区别:

1).javascript正则表达式创建有两种方法:

a.显式创建:

var re = new RegExp("正则表达式模式串");

re.test(要校验或处理的源字符串);

 

b.隐式创建:

var re = /正则表达式模式串/;

要校验或处理的源字符串.match(re);

 

2).分组捕获对象引用方式不同

javascript也是使用"()"进行分组,但是捕获对象用RegExp对象的$1到$99来引用捕获对象。

 

 

附录:常用的javascript正则表达式,java的也类似

ip地址校验正则表达式(IPv4):

/^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])(/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])){3}$/

 

Email校验正则表达式:

/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(/.[a-zA-Z0-9_-]+)+$/

 

格式为:2010-10-08类型的日期格式校验正则表达式:

/^/d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]/d|3[0-1])$/

 

格式为:23:11:34类型的时间格式校验正则表达式:

/^([0-1]/d|2[0-3]):[0-5]/d:[0-5]/d$/

 

转:

由于手机号段的不断更新,以前的正则表达式已经无法满足需求。重新编写这条表达式,号段资料来源依据:http://www.von-line.com/hao.htm

var regex = {
    mobile: /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/
}
 
表达式分析:

“/”代表一个正则表达式。
“^”代表字符串的开始位置,“$”代表字符串的结束位置。
“?”代表匹配前面的字符一个或零个,所以这里0?的意思是手机号码可以以0开头或不以0开头。
接下的部分验证11位的手机号码,先从13开始,因为从130-139都有所以可选区间是[0-9],15开头的号码没有154所以[]里面没有4这个数字,当然也可以写成[0-35-9],下面18和14开的号码同上。
小括号括起来的代表一个子表达式,里面是4个可选分支分别用“|”来区分开来,在正则中“|”的优先级是最低的,这里每个分支匹配的都是3个字符(一个 []只能匹配一个字符,里面是可选的意思),也就是手机号码的前3位数字,那么后面还有8位数字需要匹配,可以是0-9的任意字符,所以是“[0-9] {8}”,{}中的数字代表匹配前面字符的个数。分析完毕。

 

 

 

分享到:
评论

相关推荐

    常用java正则表达式

    许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...

    邮箱校验正则表达式

    邮箱校验正则表达式,及其jsp编写过程,JavaScript表单验证email邮箱,判断一个输入量是否为邮箱email,通过正则表达式实现。

    正则表达式经典实例

    对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...

    《学习正则表达式》高清扫描版 PDF

    正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法.....

    《正则表达式经典实例》扫描版

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB...

    正则表达式完整高清版

    《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...

    正则表达式经典实例.pdf

    对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。  本书的读者对象是对...

    Java JS正则表达式大全

    这里有很全面的正则表达式,清晰使用说明,让浏览的朋友对正则深入浅出

    java正则表达式.docx

    java正则表达式.docx 如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符...

    Java正则表达式详解

    许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...

    使用正则表达式进行各种常用验证.html

    各种正则验证.正则表达式,多种的验证样式。。jsp

    正则表达式学习视频

    正则表达式学习视频,包括正则表达式的简单语法,高级语法,和在JS。java语言中的应用

    正则表达式JS与JAVA的简单入门应用

    里面包含了一个JAVA文件.一个JS文件(都为在该语言中的简单实例)。一个正则表达式测试绿色软件。并且有详细的按步骤的说明文档!

    java \javascript 正则表达式

    快速的掌握简单的java、JavaScript正则表达式,

    正则表达式的ppt

    正则表达式的精华和例子 里面有js正则表达式、还有java正则的例子

    正则表达式经典实例.(美)高瓦特斯,(美)利维森.pdf

    本书讲解了基于8种常用的...对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。

Global site tag (gtag.js) - Google Analytics