正则表达式基础以及应用

首先是关于正则表达式的基本知识。

一:RegExp(regular expression)对象的创建

RegExp构造函数创建了用于将文本与模式相匹配的正则表达式对象。

有两种方法创建一个正则表达式对象。

(1)文字符号方法

/pattern/attributes

/ab+c/i;

当正则表达式保持不变时使用文字符号方法,例如使用文字符号来构造循环中使用的正则表达式,则每次迭代都不会重新编译正则表达式。

(2)构造函数方法

new RegExp(pattern,modifiers)

new RegExp(‘ab+c‘, ‘i‘);

使用这种方式时,正则表达式会在运行时编译,当知道正则表达式模式将会被更改、内容不确定或者可能从其他来源获取,请使用构造函数。

*参数:pattern是一个字符串,指定了正则表达式的模式

modifiers是一个可选的字符串,指定修饰符。

二:RegExp修饰符

"i"-不区分大小写

"g"-全文匹配

"m"-多行匹配

三:RegExp的方法

(1)、RegExp.$1~$9

RegExp.$1是正则表达式的第一个子匹配字符串(以括号为标志)

例:

var re = /(\w+)@(\w+)\.(\w+)/g //有三个括号,RegExp.$4无

var src = "Please send mail to [email protected] and [email protected]"

f=re.exec(src);

console.log(RegExp.$1);

console.log(RegExp.$2);

console.log(RegExp.$3);

output:

ptt

yiji

com

(2)、test()

test()是RegExp对象的方法,用来检测字符串是否匹配某个模式,返回true或false。

语法:RegExpObject.test(string) string为要检测的字符串

console.log(/(m+)/.test(‘mmye‘));

output:

true

(3)、exec()

RegExp.exec(str)

exec()方法检索字符串中指定的值并返回该值,若没有发现匹配的值,则返回null。

(4)、compile() --已从web标准中移除

compile()方法用于在脚本执行中编译正则表达式,它与RegExp构造函数基本相同

四:支持正则表达式string对象的方法

(1)、replace()

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str="welcome";

console.log(str.replace("w","m"));

output:

melcome

(2)match()

match()方法用于检索字符串,找到一个数组,当RegExp设置了全局搜索g时,数组长度大于1

(3)search()

str.search(RegExp)

检索与正则表达式想匹配的值,返回第一个与regexp想匹配的子串的位置。

var arr="hello everyone".search(/ev/);

console.log(arr);

output:

6

(4)split()

arr.split(separator,howmany)

split()把字符串分割为字符串数组

var arr="hello everyone";

arr1=arr.split("e");

alert(arr1);

output:

["h", "llo ", "v", "ryon", ""]

五:正则表达式的应用

1、对Date的扩展,将 Date 转化为指定格式的String

// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,

// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)

Date.prototype.Format = function (fmt) {

var o = {

"M+": this.getMonth() + 1, //月

"d+": this.getDate(), //日

"h+": this.getHours(), //小时

"m+": this.getMinutes(), //分

"s+": this.getSeconds(), //秒

"S": this.getMilliseconds() //毫秒

};

// test()检测字符串是否匹配

//(y+) +表示匹配其之前的表达式多次,如y,yy,yyyy

if (/(y+)/.test(fmt)) {

//RegExp.$1是正则表达式匹配的第一个 子匹配(以括号为标志)字符串

fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

//若年份存在,则被替换成2012-MM-dd

}

// 遍历

for (var k in o){

if (new RegExp("(" + k + ")").test(fmt))

//根据占位符的长度,判断是否需要加在之前加"0"

fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

}

return fmt;

}

// 调用:

var time2 = new Date("2017/3/25 20:11:11").Format("yyyy-MM-dd hh:mm:ss");

console.log(time2);

</script>

时间: 2024-12-30 09:13:09

正则表达式基础以及应用的相关文章

前端学PHP之正则表达式基础语法

前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述.正则表达式有三个作用:1.匹配,也常常用于从字符串中析取信息:2.用新文本代替匹配文本:3.将一个字符串拆分为一组更小的信息块.本文将详细介绍PHP中的正则表达式基础语法 [注意]关于javascript的正则表达式的详细信息移步至此 历史 在PHP中有两套正则表达式函数库,两者功

刨根究底正则表达式之二——正则表达式基础

正则表达式基础 一.正则表达式构成 1. 正则表达式中的语法元素,从是否具有特殊含义的角度进行分类,可分为下列两大类.共五种语法元素: 1)不具有特殊含义的语法元素 (1)  字面字符(文本字符):不具有特殊含义的单个字符,代表字符自身(即字符字面值): (2)  普通转义序列:由转义前导符\后跟元字符所组成的字符序列,将具有特殊含义的元字符,转义为(即转换为)不具有特殊含义的字符本身(即字符字面值): 2)具有特殊含义的语法元素 (1)  元字符:具有特殊含义的单个字符,包括:\.(.).[.

黑马程序员-正则表达式基础

正则表达式是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的.正则表达式可以用于搜索.编辑或者是操作文本和数据.它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式.正则表达式的变化是复杂的,一旦你理解了它们是如何被构造的话,你就能解析或者构建任意的正则表达式了..正则表达式由一些普通字符和一些元字符组成. 普通字符包括大小写的字母和数字,而元字符则具有特殊的含义.在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"a

正则表达式基础---转自 Python正则表达式指南 前边

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程:  正则表达式的大

javascript之正则表达式基础知识小结

javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移. 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1.直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2.[

转:正则表达式基础知识

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.如: JScript VBScript 匹配 /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成. /<(.*)&

Linux 基础入门----正则表达式基础

介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把它说明清楚需要单独一门课程来实现,不过我们这一节中涉及到的相关内容通常也能够满足很多情况下的需求了. 想要更深入地学习使用正则表达式,在这里 正则表达式基础. 一.正则表达式 什么是正则表达式呢? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Ex

1.11正则表达式基础(学习过程)

正则表达式基础 实验介绍 虽然我们这一节的标题是正则表达式,但实际这一节实验只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把它说明清楚需要单独一门课程来实现,不过我们这一节中涉及到的相关内容通常也能够满足很多情况下的需求了. 想要更深入地学习使用正则表达式,在这里 正则表达式基础. 一.正则表达式 什么是正则表达式呢? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英

正则表达式基础及java使用

正则表达式基础 正则表达式语法(1) 普通字符:字母,数字,汉子,下划线以及没有特殊定义的标点符号都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符 简单的转义字符: \n :代表换行符 \t :代表制表符 \\ :代表\本身 \^ ......  :代表匹配这字符本身 正则表达式语法(2) 标准字符集合: 能够与多种字符匹配的表达式 注意区分大小写,大写是相反的意思 \d :任意一个数字,0-9中的任意一个 \w:任意一个字母或者下划线或者汉字,也就

0524.深入浅出理解iOS常用的正则表达式—基础篇[Foundation]

参考资料:cocoachina的zys475481075的文章 几个单词 Regular  ['regj?l?] adj. 定期的:有规律的 Expression [?k'spre?(?)n; ek-] n. 表现,表示 Regular expression 正则表达式 什么是正则表达式? 用一个描述字符串去验证另一个字符串是否符合描述字符串的特征.(不严谨,可以这么理解) 思考:比如表达式"12+",描述的意思是一个1和任意个2组成的字符串,那么'12'.'122'.'122'-.都