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---正则表达式的更多相关文章

  1. WEB前端工程师整理的原生JavaScript经典百例

    一.原生JavaScript实现字符串长度截取 二.原生JavaScript获取域名主机 三.原生JavaScript转义html标签 四.原生JavaScript时间日期格式替换 Date.prot ...

  2. 原生JavaScript技巧大收集100个

    原生JavaScript技巧大收集 1.原生JavaScript实现字符串长度截取function cutstr(str, len) { var temp; var icount = 0; var p ...

  3. 100个常用的原生JavaScript函数

    1.原生JavaScript实现字符串长度截取 复制代码代码如下: function cutstr(str, len) {    var temp;    var icount = 0;    var ...

  4. 原生JavaScript

    原生JavaScript 为了方便查看. 所有的js和css代码都是嵌入式直接写在html代码中 1.js的引入方式 <!DOCTYPE html> <html lang=" ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. 【JS】javascript 正则表达式 大全 总结

    javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...

  7. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

  8. 理清JavaScript正则表达式--下篇

    紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...

  9. 原生javascript 实现 animate

    原生javascript 实现 animate //animate function getstyle(obj,name){ if(obj.currentStyle){ return obj.curr ...

  10. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

随机推荐

  1. DHCP简单配置

    DHCP是什么? DHCP动态主机地址管理协议(Dynamic Host Configuration Protocol)是一种基于UDP协议且仅限用于局域网内使用的网络协议,最主要的用途是为局域网内部 ...

  2. SLD 官方实例

    基于xml标准的sld格式: <?xml version="1.0" encoding="UTF-8"?> <StyledLayerDescr ...

  3. ios app应用在显示屏幕上改中文名

    1.点击项目名 2.选Build settings 搜索 product name 3.双击,改为需要在手机上显示的应用名

  4. Validate Binary Search Tree——体现二查搜索树思想的一道题

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  5. JavaScript(获取或设置html元素的宽,高,坐标),确定和判断鼠标是否在元素内部,二级导航菜单鼠标离开样式问题解决

    设置: document.getElementById('id').style.width=value    document.getElementById('id').style.height=va ...

  6. hdu4347

    求与询问点欧几里德距离前m小的点 其实就是在kdtree询问的时候用优先队列维护一下就好了 好久没写kdtree练一练,注意这道题是多测 #include<bits/stdc++.h> u ...

  7. 5 Linux网络编程基础API

    5.1   socket地址API 大端字节序(网络序):高位在低址,低位在高址 小端字节序(主机序):低位在低址,高位在高址 判断,利用联合的特性: #include <iostream> ...

  8. 【LOJ】 #2013. 「SCOI2016」幸运数字

    题解 最大异或和,明显是个线性基 然而还有那么多路径--那就树分治,反正点数看起来很少,就是为了让人乘上一个60的常数嘛 把一个树的点分树记录下来,然后看看询问的两个点彼此相同的最后一个父亲是谁,把这 ...

  9. vue开发关于微信授权登录以及路由mode模式(Hash|History)和手机平台(andriod|IOS)不得不说的故事

    引用链接: https://segmentfault.com/a/1190000010753247?utm_source=tuicool&utm_medium=referral

  10. Blob和Clob在JDBC中的简介

    数据库在当今的应用越来越广泛了,同样伴随着领域的广泛,存储的内容也不在是只有数值.字符.boolean几种类型,而是越来越多样化.在这样的前提下就出现了Blob和Clob两个类型.下面我将对这个两个类 ...