JavaScript学习-字符串操作(正则表达式)

一、基本含义——正则表达式

1.1 名称

全称:正则表达式(regular expression)。简称:RegExp。

1.2 含义

一种模式,匹配符合表达式限制的字符串。
示例:寻找超链接。

// 待查询的字符串str。
var str = "<a href='http://www.baidu.com' title='百度'> 百度</a>";
// 查询方法;直接量创建法——searchMethod1
var searchMethod1 = /^<a href=(\'|\")[a-zA-Z0-9\/:\.]*(\'|\")>.*<\/a>$/ig;
// 查询方法;对象创建法——searchMethod2
var searchMethod2 = new RegExp("/^<a href=(\'|\")[a-zA-Z0-9\/:\.]*(\'|\")>.*<\/a>$/", "ig");
// 取用
searchMethod1.test(str);

1.3 作用

处理判断获取替换删除增加较为复杂字符串

1.4 修饰符

修饰符含义用法
i忽略大小写查询/正则表达式/i
g全局查询所有(找到所有符合要求的字符)/正则表达式/g
m多行查找/正则表达式/m

1.5 元字符

1.5.1 文字

word(单词)、digit(数字)

元字符含义用法
\w单词字符/\w/g 全局查找包含单词的字符串
\W非单词字符/\W/g 全局查找包含非单词的字符串
\d数字/\d/g 全局查找数字的字符串
\D数字/\D/g 全局查找非数字的字符串
\b单词边界/\b/g 全局匹配单词边界
\B非单词边界/\B/g 全局非单词边界

1.5.2 字符

space(空白)

元字符含义用法
\s空白/\s/g 全局查找空白的字符串
\S非空白/\S/g 全局查找非空白的字符串
\n换行符/\n/g 全局查找换行符
\f换页符/\f/g 全局查找换页符
\r回车符/\r/g 全局查找回车符
\t制表符/\t/g 全局查找制表符
\v垂直制表符/\v/g 全局查找垂直制表符

1.5.3 混合

元字符含义用法
.任何字符(除了换行符)/h.t/g 全局查找以h开头,t结尾的字符串

1.6 量词

量词含义用法
x+至少一个 x
x*0个x或者多个x。
x?至多一个x。
x{m}m个x。
x{m,n}m-n个x。
x{m,}至少m个x。
x$以x结尾。
^x以x开头。
?=x后接x的字符串。
?!x后不接x的字符串。

1.7 小括号——()

作用:确定优先级。
或者——|。作用:选择。

1.8 中括号——[]

作用:确定范围。闭区间内查找,只要符合中括号内要求即可。

量词含义用法
[xxxx]中括号内任何字符
[^xxxx]不在方括号内的字符
[0-9]0 - 9 数字
[a-z]a - z 字母
[A-Z]A - Z 字母
[A-z]A - z 字母。
[a-zA-Z0-9]数字或字母

二、创建——正则表达式

2.1 直接量创建法

语法:/pattern/attributes

var str = "abghtjbfjjbv";
var pattStr = /t/i;
	// 特殊含义的字符不需要转义
	document.write(pattStr);
	// 结果为:t

2.2 对象创建法

语法:var 正则对象名 = new RegExp(pattern, attributes)

var str = "abghtjbfjjbv";
var pattStr = new RegExp("t","i");
	// 可字符串拼接。
	document.write(pattStr);
	// 结果为:t

三、属性——正则表达式

3.1 global

var str = "abghtjbfjjbv";
var pattStr1 = new RegExp("t","i");
var	p1 = pattStr1.global;
var	pattStr2 = new RegExp("t","g");
var	p2 = pattStr2.global;
var	pattStr3 = new RegExp("t");
var	p3 = pattStr3.global;
	document.write(p1,p2,p3);
	// 结果为:false,ture,false

3.2 ignoreCase

var str = "abghtjbfjjbv";
var pattStr1 = new RegExp("t","i");
var	p1 = pattStr1.global;
var	pattStr2 = new RegExp("t","g");
var	p2 = pattStr2.global;
var	pattStr3 = new RegExp("t");
var	p3 = pattStr3.global;
	document.write(p1,p2,p3);
	// 结果为:ture,false,false

3.3 multiline

var str = "abghtjbfjjbv";
var pattStr1 = new RegExp("t","m");
var	p1 = pattStr1.global;
var	pattStr2 = new RegExp("t","g");
var	p2 = pattStr2.global;
var	pattStr3 = new RegExp("t");
var	p3 = pattStr3.global;
	document.write(p1,p2,p3);
	// 结果为:ture,false,false

3.4 lastIndex

作用:获取RegExp对象的查找字符的位置。
注意:使用该属性时,修饰符中必须包含g。

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j","g");
	pattStr2.test(str);
var	p2 = pattStr2.global;
	document.write(p2);
	// 结果为:6。注意该处位置起始值为1。

3.5 source

作用:获取RegExp对象的原字符串。

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j","g");
	document.write(pattStr2.source);
	// 结果为:j。

四、方法——正则表达式

4.1 compile

作用:编译正则表达式

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j","g");
var p2 = str.replace(pattStr2,"J")
	document.write(p2);
	// 结果为:abghtJJbfJJbv。
	pattStr2.compile("b","g");
	p2 = str.replace(pattStr2,"J")
	document.write(p2);
	// 结果为:aJghtjjJfjjJv。

4.2 exec

作用:检索字符串中指定的值。返回找到的值

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j","g");
var p2 = pattStr2.exec(str)
	document.write(p2);
	// 结果为:j。无时用null

4.3 test

作用:是否有指定的值。返回 true 或 false。

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j","g");
var p2 = pattStr2.test(str)
	document.write(p2);
	// 结果为:ture。无时用false

五、替换字符串——replace

作用:替换掉已知字符
语法:字符串.replace(正则表达式或字符串, replacement)
说明:replacement。替换直接字符串或返回值为字符串的函数

// 把所有j变为A。
var str = "abghtjjbfjjbv";
var p2 = str.replace(/j/g,"A");
	document.write(p2);
	// 结果为:abghtAAbfAAbv
// 把“小张”换成“小明”。
var str = "小张,吃饭了!";
var p2 = str.replace(/小张/g,"小明");
	document.write(p2);
	// 结果为:abghtAAbfAAbv

var str = "abght jjbf jjbv";
// 单词首字母大写。
var p2 = str.replace(/\b\w+\b/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1)});
	document.write(p2);
	// 结果为:Sbght Jjbf Jjbv
		

六、删除字符串——replace

// 删除所有j。
var str = "abghtjjbfjjbv";
var p2 = str.replace(/j/g,"");
	document.write(p2);
	// 结果为:abghtbfbv

七、查找字符串——search

语法:字符串.search(正则表达式)
返回值:有时,第一次匹配的位置。无时,-1。

var str = "abghtjjbfjjbv";
var pattStr2 = new RegExp("j");
var p2 = str.search(pattStr2);
// var p2 = str.search(/j/);
	document.write(p2);
	// 结果为:5

八、查找字符串——match

语法:字符串.match(正则表达式)
返回值:有时,相匹配的值。无时,null。

var str = "abgd1ht5jjb6fjjbv";
var p2 = str.match(/\d+/g);
	document.write(p2);
	// 结果为:1,5,6
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值