`
sodler
  • 浏览: 14668 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

js 正则表达式部分内容

阅读更多

    正则表达式是一种定义字符模式的方法,我们可以拆分、查找或替换字符串中与模式字符匹配的字符。

    在js中正则表达式是通过RegExp对象使用的。RegExp对象是js中的一个内置对象,与Date,Object类似。可以通过两种方式创建新的RegExp对象。

var RegExp = /\b'|'\b/;(‘/’表示正则表达式的开始和结束,就像表示字符串开始结束的''一样)

var RegExp = new RegExp("\\b'|'\\b")

   正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的。

    第一种方法更简短,第二种方法允许在代码执行时确定正则表达式(例如用户输入的内容作为表达式)。

    举例说明正则表达式:

var string = 'zhe,shi,yi,ge,zi,fu,chuan,zhen,de,shi,zi,fu,chuan'

    将所有的'shi'替换为'sp'

    需要查找的文本模式是简单的shi。将他表示为正则表达式:

var suiBianQiDeMingZi = /shi/;

    之后使用replace()方法替换:

suiBianQiDeMingZi = string.replace(suiBianQiDeMingZi,'sp');

    【replace()方法接受两个参数,先是RegExp对象,再是要换上的内容】

    RegExp对象默认仅查找与模式匹配的第一个子串,本例中即第一个'shi',然后停止查找,这是RegExp对象非常重要而常见的特性。(正则表达式从字符串的一端开始查找,当找到第一个匹配的子串时,就停止查找。)

    因此添加如下属性可避免这一特性:

    g全局搜索。查找所有与模式匹配的子串,而不是在找到第一个之后就停止。

    i不区分大小写搜索。

    m多行搜索。

    具体使用如下:

var suiBianQiDeMingZi = /shi/gi;(这样就会执行全局搜索并且不区分大小写)

    正则表达式的特殊字符:

\b 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。

var a = 'never'
var b = /er\b/
var c = a.replace(b,'lse')
c
=>"nevlse"

[ ] 匹配在方括号中的字符。“[abc]”可以匹配“plain”中的“a”。

 

var a = 'never'
var b = [er]
var c = a.replace(b,'lse')
c
=>"nevlse"

 

[^] 匹配未在方括号中的字符。“[^abc]”可以匹配“plain”中的“plin”。

 

var a = 'never'
var b = /[^nev]/
var c = a.replace(b,'lse')
c
=>"nevelse"

 

\d  0~9的任意数字  例如[匹配格式如1-2-3-456-78的电话号码,可使用如下正则表达式\d-\d-\d-\d\d\d-\d\d]

var a = '1,3,1,4,5,2,1,qing,ren,jie'
var b = /\d/
var c = a.replace(b,'22')
c
=>"22,3,1,4,5,2,1,qing,ren,jie"

var a = '1,3,1,4,5,2,1,qing,ren,jie'
var b = /\d/g
var c = a.replace(b,'22')
c
=>"22,22,22,22,22,22,22,qing,ren,jie"

 

\D  任何非数字字符

var a = ['1','3','1','4','5','2','1','qing','ren','jie']
var b = /\D/
var c = _.map(a,function(num){
    return num.replace(b,'airen')
})
c
=>["1", "3", "1", "4", "5", "2", "1", "airening", "airenen", "airenie"]

 

 

\w(小写)  匹配一个单字字符(字母[A~Z,a~z]、数字[0~9]或者下划线)。

var a = '!,@,#,$,%,6,7,8,9,0,q,r,j'
var b = /\w/g
var c = a.replace(b,'QAQ')
c
=>"!,@,#,$,%,QAQ,QAQ,QAQ,QAQ,QAQ,QAQ,QAQ,QAQ"

 

\W(大写)  匹配一个非单字字符。例如[^A-Z,a-z,0-9]

var a = '!,@,#,$,%,6,7,8,9,0,q,r,j'
var b = /\W/g
var c = a.replace(b,'QAQ')
c

=>"QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** 6 ** QAQ ** 7 ** QAQ ** 8 ** QAQ ** 9 ** QAQ ** 0 ** QAQ ** q ** QAQ ** r ** QAQ ** j"( ** 仅是分隔之用)

 

\s(小写) 匹配一个空白字符,包括空格、制表符、换页符和换行符。

var a = '!,@,#,$,%,6,7,8,9,0,q,r,j,(这是空格),^,&,*,(,),~'
var b = /\s/g
var c = a.replace(b,'QAQ')
c
"!,@,#,$,%,6,7,8,9,0,q,r,j,QAQ,^,&,*,(,),~"

 

\S(大写)  匹配一个非空白字符。

var a = '!,(这是空格),(这是空格),(这是空格),w,a,n'
var b = /\S/g
var c = a.replace(b,'QAQ')
c
=>"QAQQAQ  QAQ   QAQ    QAQ ** QAQ ** QAQ ** QAQ ** QAQ ** QAQ"

 

{n} n是一个正整数,匹配了前面一个字符刚好发生了n次。o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。

 

var a = '5,5,5,5,5,22222,QQQ'
var b = /2{5}/
var c = a.replace(b,'QAQ')
c
=>"5,5,5,5,5,QAQ,QQQ"

 

{n,} n是一个正整数,匹配了前面一个字符刚好发生了n次,或n次以上。“o{2,}”能匹配“foooood”中的所有o。

 

var a = '5,5,5,5,2,22,1,222,5,22222,1,QQQ'
var b = /2{2,}/g
var c = a.replace(b,'QAQ')
c
=>"5,5,5,5,2,QAQ,1,QAQ,5,QAQ,1,QQQ"

 

{n,m}  n 和 m 都是正整数。匹配前面的字符至少n次,最多m次。“o{1,3}”将匹配“fooooood”中的前三个o。如果 n 或者 m 的值是0, 这个值被忽略。

 

var a = '5,5,5,5,2,22,3,222,5,222TT22,QQQ'
var b = /2{2,3}/g
var c = a.replace(b,'QAQ')
c
=>"5,5,5,5,2,QAQ,3,QAQ,5,QAQTTQAQ,QQQ"

 

?  前一项出现0次或1次,“o{0,1}”等价于“o?”。

 

var a = '5,2,1'
var b = /5?/g
var c = a.replace(b,'QAQ')
c
=>"QAQ ** QAQ ** , ** QAQ ** 2 ** QAQ ** , ** QAQ ** 1 ** QAQ"

 

+   前一项出现1次或多次,“o{1,}”等价于“o+”。

 

var a = '5,5,5,5,2,22,3,222,5,222TT22,QQQ'
var b = /5+/g
var c = a.replace(b,'QAQ')
c
=>"QAQ,QAQ,QAQ,QAQ,2,22,3,222,QAQ,222TT22,QQQ"

 

×   前一项出现0次或多次,“o{0,}”则等价于“o*”。

 

ar a = '5,2,1'
var b = /5*/g
var c = a.replace(b,'QAQ')
c
=>"QAQ ** QAQ ** , ** QAQ ** 2 ** QAQ ** , ** QAQ ** 1 ** QAQ"

 

 

分享到:
评论

相关推荐

    JavaScript正则表达式匹配 div style标签

    在JavaScript中,正则表达式以斜杠“/”包围的形式出现,例如`/pattern/flags`。在处理HTML文档时,经常会遇到需要从HTML代码中提取特定信息的情况,比如从一段字符串中匹配`<div>`和`<style>`标签。 在进行正则...

    js_正则表达式全攻略

    ### 正则表达式在JavaScript中的应用全攻略 #### 一、正则表达式的概念及其在JavaScript中的重要性 正则表达式(Regular ...正则表达式是JavaScript编程中不可或缺的一部分,掌握它可以使代码更简洁、高效。

    js正则表达式详解

    ### js正则表达式详解 #### 一、正则表达式基础知识 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于文本的查找与替换、验证等场景。JavaScript同样支持正则表达式的使用,并且具有非常...

    javascript正则表达式综合练习

    JavaScript正则表达式是编程语言中的一个重要组成部分,用于处理文本模式匹配和字符串操作。这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则...

    JS正则表达式葵花宝典

    "JS正则表达式葵花宝典"中的内容应该包括了这些关键知识点,并可能进一步扩展到更多的正则表达式高级技巧,如环视、条件匹配、预查等等。 记住,正则表达式虽然强大,但也要注意不要滥用,避免造成难以理解和维护的...

    js正则表达式限制文本框只能输入字母和汉字

    本篇文章将深入探讨如何使用JavaScript(简称JS)中的正则表达式来实现一个文本框仅能输入字母(包括大小写)和汉字的功能。 #### 1. 理解需求 题目所提及的需求是:创建一个HTML文本框,通过JavaScript控制其输入...

    三目运算符+正则表达式

    这个正则表达式包含多个部分,如`\b`表示单词边界,`[A-Za-z0-9._%+-]`定义了允许的字符集,`@`是匹配邮件地址中的“@”符号,`[A-Z|a-z]{2,}`则用来匹配顶级域名,至少由两个字母组成。 三目运算符和正则表达式...

    正则表达式调试工具

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索替换和文本处理等领域。正则表达式调试工具是开发人员用来测试和优化这些模式的重要辅助工具。本文将...

    使用正则表达式验证一年的12个月份

    在IT行业中,正则表达式是处理字符串时不可或缺的一部分,尤其在数据验证、文本提取等方面。在这个场景中,我们需要创建一个正则表达式来验证输入是否符合一年12个月份的格式。 首先,我们要明确一年中的12个月份的...

    源码(精通正则表达式&实战正则表达式)

    本资源“源码(精通正则表达式&实战正则表达式)”专注于JavaScript环境下的正则表达式学习,通过一系列视频教程和配套源码,帮助开发者提升对正则表达式的理解和应用能力。 首先,"精通正则表达式五部视频"可能涵盖...

    只验证数字和字母的正则表达式

    该正则表达式 `/^([A-Za-z0-9])+$/` 可以被细分为几个关键部分进行解读: 1. **`/`**:正则表达式的开始与结束符号。 2. **`^`**:表示匹配字符串的起始位置。 3. **`([A-Za-z0-9])`**: - **`[A-Za-z]`**:表示...

    Java JS正则表达式大全

    **Java与JavaScript正则表达式详解** 在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,尤其在处理字符串匹配、查找、替换和提取等任务时,它的功能尤为强大。Java和JavaScript虽然源自不同...

    精通正则表达式中文版英文版_中文版为扫描版

    书中的例子涵盖了多种编程语言,如Perl、Java、JavaScript、.NET等,这些语言的正则表达式引擎虽然大同小异,但在细节上有所区别,学习者将了解到如何在不同环境下应用正则表达式。 对于初学者,书中会引导他们理解...

    JS正则表达式大全 (正则表达式用于简化js中的代码)

    ### JS正则表达式大全 #### 一、正则表达式概述 正则表达式是一种在文本中查找或替换字符串的强大工具,在JavaScript中被广泛应用于数据验证、字符串搜索与替换等场景。通过学习并掌握正则表达式的使用方法,可以...

    正则表达式验证金额格式

    首先,让我们了解一个基本的正则表达式的组成部分: 1. 字符类:如 `[0-9]`,表示匹配0到9之间的任何数字。 2. 量词:如 `{n}` 或 `{n, m}`,用于指定匹配次数。例如,`{2,4}` 表示匹配至少2次,最多4次。 3. 选择...

    js正则表达式(例子).rar

    在"js正则表达式(例子).htm"中,可能包含了各种JavaScript正则表达式的实例,例如邮箱验证、手机号码格式检查、URL解析等。通过这些实例,你可以学习如何构建复杂的正则表达式来满足不同的需求,并了解它们在实际...

    javascript正则表达式详解

    JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...

Global site tag (gtag.js) - Google Analytics