原生JavaScript---正则表达式
JavaScript 中正则的性能比想象中的低很多。能用字符串方法搞定的,尽量别用正则。------玉伯
抛开性能不谈,一起来看看正则表达式怎么用吧!
先看看JavaScript正则表达式中一些特殊字符的含义:
字符 | 含义 |
^ | 匹配以某些字符开头的字符串 |
$ | 匹配以某些字符结尾的字符串 |
? | 匹配出现0次或1次的字符或字符串 |
* | 匹配出现0次或n次的字符或字符串 |
+ | 匹配出现1次或n次的字符或字符串 |
{n} | 精确匹配出现n次的字符或字符串 |
{n,} | 匹配出现>=n次的字符或字符串 |
{n,m} | 匹配出现 >=n次 and <=m次 的字符或字符串 |
. | 匹配除了换行符外的字符 |
[...] | 匹配括号里的任意字符 |
[^...] | 匹配除了括号里的字符外的任意字符 |
\b | 匹配一个单词的边界 |
\B | 匹配一个单词的非边界 |
\d | 匹配数字0-9 |
\D | 匹配任何非数字的字符 |
\w | 匹配 a-z A-Z 0-9 _ |
\W | 匹配 非字母、非数字、非下划线 |
\n | 匹配换行符 |
\s | 匹配空格符 |
\S | 匹配非空格符 |
\t | 匹配Tab |
字符 | 含义 |
g | 全局匹配 |
m | 多行匹配 |
i | 忽略大小写 |
1.看是否匹配 test()
如果匹配返回true 不匹配则返回false
示例:
//<![CDATA[
var str="PrimitiveJavaScript is my JavaScript Special column.";
var pattern1=/Java/;
document.write(pattern1.test(str));
document.write("<br/>");
var pattern2=/java/;
document.write(pattern2.test(str));
//--><!]]>
结果:
2.返回匹配的值 exec()
示例:
//<![CDATA[
var str="PrimitiveJavaScript is my JavaScript Special column.";
var pattern=/JavaScript/;
document.write(pattern.exec(str));
//--><!]]>
结果:
JavaScript
3.返回匹配的数组 match()
示例:
//<![CDATA[
var str="PrimitiveJavaScript is my JavaScript Special column.";
var pattern=/JavaScript/g; //全局匹配
var result=str.match(pattern);
document.write(result[0]);
document.write("<br/>");
document.write(result[1]);
//--><!]]>
结果:
掌握这三个方法,再加上字符串的知识,就可以处理各种各样的问题啦。
还是要多加练习,融会贯通。
就写到这了。
我的新浪微博:X--zhang
专栏地址:原生JavaScript
欢迎吐槽,欢迎拍砖!
文 / X--zhang
原生JavaScript---正则表达式的更多相关文章
- WEB前端工程师整理的原生JavaScript经典百例
一.原生JavaScript实现字符串长度截取 二.原生JavaScript获取域名主机 三.原生JavaScript转义html标签 四.原生JavaScript时间日期格式替换 Date.prot ...
- 原生JavaScript技巧大收集100个
原生JavaScript技巧大收集 1.原生JavaScript实现字符串长度截取function cutstr(str, len) { var temp; var icount = 0; var p ...
- 100个常用的原生JavaScript函数
1.原生JavaScript实现字符串长度截取 复制代码代码如下: function cutstr(str, len) { var temp; var icount = 0; var ...
- 原生JavaScript
原生JavaScript 为了方便查看. 所有的js和css代码都是嵌入式直接写在html代码中 1.js的引入方式 <!DOCTYPE html> <html lang=" ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- 【JS】javascript 正则表达式 大全 总结
javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- 原生javascript 实现 animate
原生javascript 实现 animate //animate function getstyle(obj,name){ if(obj.currentStyle){ return obj.curr ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
随机推荐
- js弱数据类型的坑
1.从表单获取的value是字符串,如果需要为数字相加,则需要转换为number类型 <input type="number" id="val1"> ...
- 【转载】python-协程
转载自:廖雪峰的官方网站 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层 ...
- IEEEXtreme 10.0 - Always Be In Control
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Always Be In Control 题目来源 第10届IEEE极限编程大赛 https://www.h ...
- linux shell awk实现实时监控网卡流量脚本
goodtools! 原文 awk 'BEGIN{ OFMT="%.3f"; devf="/proc/net/dev"; while(("cat &q ...
- python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
s12-20160116-day03 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- 三年.NET即将转Java,我该何去何从
2014年5月,大三报了某培训班5个月学习.NET 2014年12月-2015年6月,在某软件公司实习,用ASP.NET开发企业级系统 2015年7月-2017年3月,从毕业生到成为该公司的主要开发人 ...
- visible, disable, css绑定
这个例子非常简单,主要演示如何通过属性控制html元素的显示与否(visible),可用性(disable)以及根据属性添加相应的CSS样式. 先简单的看一段代码: <p> <inp ...
- ArrayList to Array Conversion in Java
ArrayList to Array Conversion in Java Following methods can be used for converting ArrayList to Arra ...
- PHP之数组(遍历顺序)
作者: Laruence( ) 本文地址: http://www.laruence.com/2009/08/23/1065.html PHP的数组, 如果用foreach来访问, 遍历的顺序是固定 ...
- thinkphp5.0目录结构
下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ...