正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。

正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:

var reg = /^(\\d{1,4})(-|\\/)\\2)$/; 
var r = fieldValue.match(reg;             
if(r==null)alert('Date format error!';

下面是技匠整理的,在前端开发中经常使用到的20个正则表达式。

1 . 校验密码强度

密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

^(?=.*\\d=.*[a-z][A-Z).{8,10}$

2. 校验中文

字符串仅能是中文。

[\\u4e00-\\u9fa5{0, 3. 由数字、26个英文字母或下划线组成的字符串 
^\\w+$

4. 校验E-Mail 地址

同密码一样,下面是E-mail地址合规性的正则检查语句。

[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

5. 校验身份证号码

下面是身份证号码的正则校验。15 或 18位。

15位:

[
1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2|3[0-1)\\d{3}$

18位:

{5([0-9]|X)$

6. 校验日期

“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。

(?:!0000{4}-(?:0|1[0-2)-[0-8[13-9(?:29|30[13578[02)-31{2[48[2468[048[13579[26)00)-02-29 7. 校验金额 

金额校验,精确到2位小数。

]
+(.)?$

8. 校验手机号

下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)

(13|14[5|7|15|2|3|5|6|7|8|9|18{8 9. 判断IE的版本 

IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。

^.*MSIE [5-8(?:\\.)?!.*Trident\\/[5-9]\\.0).*$

10. 校验IP-v4地址

IP4 正则语句。

\\b(?:25[0-5[0-4[01]?)\\.)\\b

11. 校验IP-v6地址

IP6 正则语句。

(([-9a-fA-F]{1,4}:){77}[([7}:6}:[5}(4}2}3}3}2}5}|[((6}||fe800%[-zA-Z]{(ffff:0{1}1}25[5]2[4]|1{1}[9]3))

12. 检查URL的前缀

应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。

if !s.match(/^[a-zA-Z]+:\\/\\//))
{
    s = 'http://' + s;
}

13. 提取URL链接

下面的这个表达式可以筛选出一段文本中的URL。

(f|ht{1(tp|tps):\\/\\/[\\w-]+\\.)+(\\/[\\w- ./?%&=]*)?

14. 文件路径及扩展名校验

验证windows下文件路径和扩展名(下面的例子中为.txt文件)

]\\:|\\\\)\\\\[^\\\\]+\\\\)*[^\\/:*?"<>]+\\.txt(l 15. 提取Color Hex Codes 

有时需要抽取网页中的颜色代码,可以使用下面的表达式。

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

16. 提取网页图片

假若你想提取网页中所有图片信息,可以利用下面的表达式。

\\< *[img[^\\>[src] *= *[\\"\\']{0,1}([^\\"\\'\\ )

17. 提取页面超链接

提取html中的超链接。

<
a\\s*!.*\\brel[^(href="https?:\\/\\/)?!:www\\.?'.implode('?').'))[^")"((?>

18. 查找CSS属性

通过下面的表达式,可以搜索到相匹配的CSS属性。

^\\s*[a-zA-Z\\-]+\\s*[:}\\s[a-zA-Z0-9\\s.#]+[;]{1}

19. 抽取注释

如果你需要移除HMTL中的注释,可以使用如下的表达式。

!--(.*?)-- 20. 匹配HTML标签 

通过下面的表达式可以匹配出HTML中的标签属性。

<
\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|'.*?'[\\^'">\\s))?)+\\s*|\\s*)\\/?>
33

原文地址: http://www.jianshu.com/p/e7bb97218946/comments/2135754

本文地址: http://www.jb51.cc/article/p-wokbungi-zw.html

[乐意黎转载]知道这20个正则表达式,能让你少写1,000行代码的更多相关文章

  1. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – 使用大写符号在字符串swift中获取URL的正则表达式

    我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

  3. ios – 如何在Swift 3中使用正则表达式?

    解决方法我相信.当没有其他选项适用时,将使用.allZeros.因此,使用Swift3,您可以传递一个空的选项列表或省略options参数,因为它默认为无选项:要么请注意,在Swift3中,您不再使用error参数.它现在抛出.

  4. ios – lldb断点在类目标c中的所有方法

    如何使用lldb在ObjectiveC类中的所有方法上自动设置断点?

  5. 用Swift写一个IOS的自定义弹窗-纯代码实现

    包括纯文字提示,成功、失败、警告和菊花图。是扩展UIViewController的实现。

  6. swift的正则表达式(NSRegularExpression)

    init(_pattern:String){varerror:NSError?

  7. Swift coreAnimation 加计时器写的游戏《飞机大战》

    最近在学习swift的动画和图层,就用现学的东西写了个游戏,基本思想基本功能都实现了,图片都是在网上找得。希望能帮助大家更好的理解动画和图层、声明下,我是初学者,代码写的不好。大家应该都能看懂。游戏所有代码都是swift加动画加计时器,没有用任何游戏引擎框架。效果图源代码地址:点击打开链接地址失效了的话我可以补上

  8. swift 正则表达式运用实例选自《swifter 100个swift开发必备tip 》

  9. Swift初探之纯代码写tabBar

    冰之依韩版女装最近的项目新版本基本完成了,闲来无事学习学习新出的语言Swift。对于有OC基础的人来说学习Swift还是很简单的,下面是我自学写的Tabbar,当然这并不是自定义的。不过对于一般的需求还是可以满足的。下面是我仿“折800”写的一个Tabbar,由于图片原因导致有点小小的瑕疵代码如下更多经验请点击核心代码点击下载Demo

  10. Swift截取HTML中的所有图片url

    在Swift中,要从HTML格式的String中截取出所有的img的所有图片url,要截取的url就要匹配url,需要用到正则表达式。

随机推荐

  1. 法国电话号码的正则表达式

    我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

  2. 正则表达式 – perl分裂奇怪的行为

    PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

  3. 正则表达式 – 正则表达式大于和小于

    我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

  4. 如何使用正则表达式用空格替换字符之间的短划线

    我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

  5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

    有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

  6. 正则表达式 – 在Scala中验证电子邮件一行

    在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

  7. 正则表达式对小字符串的暴力

    在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

  8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

    isthedelimiter,thenthematch-only-onceruleof?PATTERN?

  9. 正则表达式 – 替换..与.在R

    我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

  10. 正则表达式 – 如何在字符串中的特定位置添加字符?

    我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

返回
顶部