博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript正则式
阅读量:5169 次
发布时间:2019-06-13

本文共 760 字,大约阅读时间需要 2 分钟。

正则表达式分组有4种:

先给个例子:

var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;

var url = 'http://piao.qunar.com:80/index.html?keyword=abc#city=beijing';

执行parse_url.exec(url)得到

["", "http", "//", "piao.qunar.com", "80", "index.html", "keyword=abc", "city=beijing"]。

一、捕获型

  一个捕获型分组是一个被包围在括号中的正则表达式选择如上面的([0-9.\-A-Za-z]+)。任何匹配这个分组的字符将被捕获。每个捕获型分组都被指定一个数字。在正则表达式中第一个捕获的是分组1,第二个捕获的是分组2。

二、非捕获型

  非捕获型分组有一个(?:前缀。非捕获型分组仅作简单的匹配,并不会捕获所匹配文本。这会有微弱的性能优势。非捕获型分组不会干扰捕获型分组的编号。如上面的(?:([A-Za-z]+):)。

三、向前正向匹配

  向前正向匹配有一个(?=前缀。它类似于非捕获型分组,但在这个匹配之后,文本将倒回到他开始匹配的地方。

四、向前负向匹配

  向前负向匹配分组有一个(?!前缀。他类似于向前匹配,但只有他匹配失败时他才进行匹配。

三和四,实际上都不匹配任何东西它们只是作为判断而已。

详细信息请看《javascript语言精粹》第七章。

 

转载于:https://www.cnblogs.com/adullboy/p/3139078.html

你可能感兴趣的文章
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
Android应用开发-网络编程①
查看>>
input中的name,value以及label中的for
查看>>
静态库制作-混编(工程是oc为基础)
查看>>
jQuery 显示加载更多
查看>>
Confluence 6 系统运行信息中的 JVM 内存使用情况
查看>>
Confluence 6 升级以后
查看>>
用JS实现版面拖拽效果
查看>>
二丶CSS
查看>>
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
JS一些概念知识及参考链接
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发
查看>>