JavaScript中正则表达式判断匹配规则及常用方法

字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了。

\d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010'
\w可以匹配一个字母或数字      '\w\w'可以匹配'js'
\s可以匹配一个空格(也包括Tab等空白符)
\DWS都是表示匹配与小写字母相反的匹配关系
\数字n表示指向第n个分组捕获到的字符串文本的一个引用,能够再次被匹配       /(\d+)(0*)\1/可以匹配‘22300223'
.可以匹配任意字符                  'js.'可以匹配'jsp'、'jss'、'js!'

正则表达式量词:

*表示任意个字符(包括0个)
+表示至少一个字符
?表示0个或1个字符
{n}表示n个字符
{n,m}表示n-m个字符

A|B可以匹配A或B       (J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'

^表示行的开头          ^\d表示必须以数字开头

$表示行的结束          \d$表示必须以数字结束

[]表示范围,字符类

[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名

[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)

[] 中的^ 表示排除某个字符     [^#?] 表示除了?和#的所有字符

()表示捕获型分组,可以将匹配的字符串进行分组,提取子串。

如果正则表达式中定义了组,就可以在RegExp对象上用exec()方法提取出子串来。

exec()匹配成功后,返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。

exec()匹配失败时返回null。

^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:

var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null 

(?:) 分组不想被捕获的时候使用,可以提高程序执行速度,非捕获型分组不会干扰捕获型分组编号。

用正则表达式切分字符串比用固定的字符更灵活

'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']  

RegExp对象的test()方法用于测试给定的字符串是否符合条件。

var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false

需要特别指出的是,正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。

var re = /^(\d+)(0*)$/;
re.exec('102300'); // ['102300', '102300', '']

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。

加个?就可以让\d+采用非贪婪匹配:

var re = /^(\d+?)(0*)$/;
re.exec('102300'); // ['102300', '1023', '00'] 

特殊标志

g标志 ,表示全局匹配

i标志,表示忽略大小写

m标志,表示执行多行匹配

需要使用转义符' \ '的15个特殊字符

/ \ [ ] ( ) { } ? + * | . ^ $

总结

以上所述是小编给大家介绍的JavaScript中正则表达式判断匹配规则及常用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 正则表达式语法规则及在Javascript和C#中的使用方法

    一.正则表达式概念: 在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.许多程序设计语言都支持利用正则表达式进行字符串操作. 二.正则表达式的使用: 正则表达式在ASP.NET中主要是用来对输入的内容进行验证,验证一般分为两种一种是客户端JS验证,另一种是服务器端验证 1.JS对输入内容验证 复制代码 代码如下: function check() {           

  • JavaScript中正则表达式判断匹配规则及常用方法

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了. \d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010' \w可以匹配一个字母或数字      '\w\w'可以匹配'js' \s可以匹配一个空格(也包括Tab等空白符) \DWS都是表示匹配与

  • javascript中正则表达式语法详解

    好久都没有写博客了,主要是太懒了,尤其是在阳春三月,风和日丽的日子,太阳暖暖的照在身上,真想美美的睡上一觉.就导致了这篇博客拖到现在才开始动笔,javascript的正则这一块也不是什么新的东西,主要是以前本人一遇到写正则的需求就开始头大,头疼,网上剽窃,东拼西凑,反正就是各种不适应,所以我打算系统的把正则表达式看一遍,一来是自己有所提升,这一块知识点的查漏补缺,二来是给大家分享一下.好了,下面我们直接进入主题: 正则是匹配字符串特定模式的一种表达式,官方是这样说的,但我的理解不外乎就是匹配字符

  • 深入了解JavaScript中正则表达式的使用

    目录 一.什么是正则表达式 1.正则表达式特点 2.正则表达式的使用 二.正则表达式中的特殊字符 1.正则表达式的组成 2.边界符 3.字符类 4. 量词符 5.括号总结 6.预定义类 三.String类中的方法 1.match()方法 2.search()方法 3.split()方法 4.replace()方法 一.什么是正则表达式 是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象. 正则表通常被用来检索.替换那些符合某个模式(规则)的文本,例如验证表单:用户名

  • JavaScript中正则表达式的实际应用详解

    实际工作中,JavaScript正则表达式还是经常用到的.所以这部分的知识是非常重要的. 一.基础语法: 第一种:字面量语法 var expression=/pattern/flags; 第二种:RegExp构造函数语法 var pattern = /\w/gi; //字面量语法 var pattern = new RegExp('\\w', 'gi');//构造函数语法,这两者是等价的 这里有个注意点就是:如果正则表达式是动态的话,只能选择第二种. 其中的flags有3个标志 g:表示全局模式

  • Javascript中正则表达式的使用及基本语法

    前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的基础语法 定义 正则表达式(Regular Expression)是一门简单语言的语法规范,是强大.便捷.高效的文本处理工具,它应用在一些方法中,对字符串中的信息实现查找.替换和提取操作 javascript中的正则表达式用RegExp对象表示,有两种写法:一种

  • JS中正则表达式全局匹配正斜杠的方法

    目录 JS中正则表达式全局匹配正斜杠 正则表达式 修饰词: 换行符 补充:正则表达式如何匹配正反斜杠 反斜杠的麻烦 执行匹配 JS中正则表达式全局匹配正斜杠 正则表达式 语法: 必须写在两个反斜线之间 / 要匹配的规定/: 列如: var 变量名 = / 要匹配的规定/; 2.开头以 ^ 这个符号开头表示以什么开头 列如:/^1/ 表示以1开头 3.结尾以 $ 符号结束表示以什么结束 列如:/ 0$/ 以0结束 4.正则表达式后面跟字母的: 列如:/ /i; 不区分大小写 列如:/ / g 执行

  • JS中正则表达式全局匹配模式 /g用法详解

    本文章来详细介绍js中正则表达式的全局匹配模式 /g用法,代码如下: var str = "123#abc"; var re = /abc/ig; console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出false console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出false 在创建正则表达式对象时如果使用了"g&q

  • JavaScript中如何判断一个值的类型

    我们知道在js中有一个运算符可以帮助我们判断一个值的类型,它就是typeof运算符. console.log(typeof 123); //number console.log(typeof '123'); //string console.log(typeof true); //boolean console.log(typeof undefined); //undefined console.log(typeof null); //object console.log(typeof []);

  • JavaScript 中的 this 简单规则

    几条规则确定函数里的 this 是什么. 想确定 this 是什么其实非常简单.总体的规则是,通过检查它的调用位置,在函数被调用的的时候确定 this.它遵循下面这些规则,接下来以优先级顺序说明. 规则 1.如果在调用函数时使用 new 关键字,那么函数里的 this 就是一个全新的对象. function ConstructorExample() { console.log(this); this.value = 10; console.log(this); } new Constructor

  • 基于JavaScript中标识符的命名规则介绍

    JavaScript中的标识符的命名有以下规则: 由字母.数字.$._组成 以字母.$._开头 不可以使用保留字!!! 要有意义!!!!!!! 标识符的命名规范: 1.驼峰命名法 除标识符的第一个单词外,其余单词的首字母大写,例如:trueName 2.蛇型命名法 单词之间用_隔开,例如:true_name (注:大多数情况下,以1~2个下划线开始的标识符,代表特殊变量或内部变量,我们在自己定义的时候,尽量避免使用以下划线开头的变量) (粗浅的见解,望批评指正) 以上这篇基于JavaScript

随机推荐