正则表达式

作者: _士心_ | 来源:发表于2016-05-10 12:20 被阅读62次

我就翻书看到讲正则表达式的,,以前一直听说过,感觉很难也没去看,今天看到许多地方ajax验证一堆都提到,,就浅显的看看,了解的也不深,就知道基本的几个,在这里记录一下,以后再深入了解


先说一下用途

说白了就是查找验证匹配替换定位一堆对字符串的处理方式


怎么使

var a=new RegExp(‘s+’);
var a=/s+/;

s+就是一个最简单的正则表达式
就是搜索一个或多个字母“s”

就和string number一样regexp也是js的对象
所以也有方法可以调用
test()检测是否有匹配的字符串
exec()执行 以一个数组的形式返回第一个匹配的

var re =/js/;
var str="jsjsjsjsjs";
if(re.test(str)){
document.write("有");
}

有个需要注意的就是正则表达式区分大小写
所以你如果想不区分大小写可以这样
var re=/javascript/i;//就是在/后面加个i
var re=new RegExp("javascript","i")
除了i 还有g(全局匹配),m(多行匹配)^(一行开始)&(一行结束)

时间紧我就不把js全部代码全血出来了

举几个简单例子
还是写一下吧

function(){
var re=new RegExp('js*','ig');
//匹配一个j与多个s组合 全局不区分大小
var str="djsklasjs jsss jsiiii";
var resultarray=re.exec(str);
while(resultarray){
//while用来判断正则表达式是否执行完成 完成返回一个空
document.write(resultarray[0]);
//显示匹配的部分
document.write(re.lastIndex+"
")
//正则表达式中lastIndex指向匹配对象的位置
}

结果
js 1
js 7
jsss 10
js 15

var re=/(ds)+(j+s)/ig
//匹配一个以上的ds(不能分开)同时紧邻一个以上j和一个s
//dsdsjs可以
//dsdsdsjjs可以
//js不可以因为(ds)后面是“+”如果是“*”就可以为零个ds //js这种情况就可以匹配



###正则表达式的转义字符
就是反斜杠\\\\\\
\+
\*
\s   表示空格,,,,,常用
>var re=/\s\*/g;
var str="wo *shi *guozhipeng";
var resultstring=str.replace(re,-);
alert(resultstring);
就会变成wo-shi-guozhipeng

这里我在说一下就是  +  *  ?  .   这几个符号
+表示匹配一个以上
*表示0个以上
?表示0或1次
.   表示就一次同时   "."可以用来表示所有的字符


var str=""guozhipeng"hehehehehhehehe";
如果用(.*)匹配就是整个字符串"guozhipeng"hehehehehhehehe
用(.*?)就会变成“guozhipeng”因为?匹配表示0或1,而我的双引号已经出现两次了,,,所以就输出“guizhipeng”


在说几个我看到的几个常用的正则表达式

\d 一个或多个数字等同于[0~9]
\D 一个或多个非数字=======等同于[^0~9]
这里“^”表示反
[A~Za~z]所有字母
/^the/这里的^表示开头   使用这个就表示用the开头的字符串
/end$/这里的$表示结尾   表示以end看、结尾的字符串
使用var str=“heheheh end”匹配
var str=“heheh end hehe”不匹配


然后正则表达式中()小括号的使用也很常见,,,使用()后()内的内容会被保存到数组里
str=“the is fun 0 ni”
在/(^\D*)[0~9]/ 匹配后会出现两个记录
一个是the is fun 0
还有一个就是小括号里的the is fun
同时$1这时就指代小括号里匹配的第一个元素  如果有其他的匹配项会一次定义为$1  $2   $3
(美元符号显示不出来1,2,3前面有一个¥类似的美元符号)


a|b|c   还是或的意思
s{2}就表示两个s字母

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

    本文标题: 正则表达式

    本文链接:https://www.haomeiwen.com/subject/nihyrttx.html