原生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正则表达式的用法进行了列表,希望 ...
随机推荐
- 关于OnPaint、FormPaint会不停的触发 触发多次的情形---讨论总结
关于OnPaint会不停的一直触发 触发多次的问题,是这样的 首先OnPaint是响应windows的WM_PAINT消息的,你显示器上 能看到的比如说 按钮button, memo什么的 都是画出来 ...
- sharepoint2013搜索
参考http://www.cnblogs.com/jianyus/p/3272692.html 最小权限http://www.cnblogs.com/awpatp/archive/2011/08/16 ...
- markdown 测试代码
这是 H1 这是 H2 这是 H3 这是 H4 这是 H5 这是 H6 A First Level Header A Second Level Header Now is the time for a ...
- AOSP编译
AOSP编译 1 编译环境Win10系统安装VMplayer14,主机16G内存,I3-4170 ,虚拟机ubuntu-16.04.1-desktop-amd64,12G内存. 2 软件安装sudo ...
- openstack架构设计(一)
下图描述了最常见的Openstack集成服务和各服务之间如何交互的逻辑架构. 一. 计算架构 当设计和构建计算结点时,需要考虑处理器,内存.网络.和存储资源等信息.它也是openstack的核心部分. ...
- 阿里云ecs 服务器配置
阿里云ecs 7.0+安装mysql 5.6 http://jingyan.baidu.com/article/454316ab67bd02f7a7c03af4.html 安装jdk yum -y i ...
- 解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
CentOS7中执行 service iptables start/stop 会报错Failed to start iptables.service: Unit iptables.service fa ...
- Java8所有的包介绍(由英文文档翻译而来)
转载: Java8所有的包介绍(由英文文档翻译而来)
- JavaScript最全编码规范
转载: JavaScript最全编码规范 类型 ●基本类型:访问基本类型时,应该直接操作类型值 ●string ●number ●boolean ●null ●undefined var foo = ...
- Python网络管理模块Paramiko-代码实例
import paramiko import time import sys ip = "10.1.1.1" username = "Admin" passwo ...