【js】正则
复习字符串操作
search 查找
substring 获取子字符串
charAt 获取某个字符
split 分割字符串,获得数组
<script>
var str="abcdef";
var str2='12-56-aaa-89';
alert(str.search('e'));//弹出4 如果没找到返回-1
alert(str.substring(2,5));//第一个参数是起点第二个是终点 类似Python的
alert(str.charAt(3));//d var arr=str2.split('-');//split用来做切分的 把字符串切分成数组
alert(arr);//12,56,aaa,89
</script>
从一堆字符串里提取数字串 //思路
//目的 把数字从一串字符串中拎出来
var str='12 fff 87 er334 233 ++++fa80';
var tmp=0;
var arr=[];
for(var i=0;i<str.length;i++){
if(str.charAt(i)>='0' && str.charAt(i)<=9){
tmp+=str.charAt(i);
}
else{
if(tmp){
arr.push(tmp);
tmp='';
}
}
}
if(tmp){
arr.push(tmp);
tmp='';
}
alert(arr);//012,87,334,233,80
改用正则:alert(str.match(/\d+/g));
search 查找
substring 获取子字符串
charAt 获取某个字符
split 分割字符串,获得数组
关于正则符合忽略大小写
<script>
//var re=new RegExp('a','i');//参数:字符串 js风格 i:ignore忽略字符串大小写的意思
var re=/a/i;//风格
var str='Abdhce';
alert(str.search(re));//弹出0;
</script>
转义 \d;
<script>
//找出第一个出现的数字
var str='adsf 43 23 vcxzxcv';
var re=/\d/;
alert(str.search(re));//弹出5 (位置)
</script>
<script>
//match 把所有匹配的东西全都提取出来
var str='asdf 34 655 cvs33';
var re= /\d+/g; //g:global全局匹配 找出所有的
alert(str.match(re));//3,4,6,5,5,3,3切片弹出了 因为\d代表了你要几个数字
//改成 /\d+/g; +量词:若干:34,655,33
</script>
<script>
//replace必须配合正则来使用
var str='abc aaa erw';
var re=/a/g;
alert(str.replace(re,'0'));//意在把所有的a替换成0 g:全局匹配
</script>
敏感词过滤
<script>
//敏感词过滤 就是把某些词替换成***而已
window.onload=function (){
var oTxt1=document.getElementById('txt1');
var oTxt2=document.getElementById('txt2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function (){
var re=/北京|淘宝|百度/g;
oTxt2.value=oTxt1.value.replace(re,"***");
}
}//|或的意思
</script>
</head>
<body> <textarea id="txt1" rows="10" cols="40"/></textarea>
<br>
<input id="btn1" type="button" value="过滤"/>
<br>
<textarea id="txt2" rows="10" cols="40"/></textarea> </body>
<script>
//元字符 [abc][]是或的意思 就是abc随便出现哪一个都行
var str='apc 214 322 %%& SPC tpc bpc 2434 cpc';
var re=/[abc]pc+/g;
alert(str.match(re));//apc,bpc,cpc
//[a-z] [0-9] 就是表示范围了 所以这个\d==[0-9]
//[^a-z]表示除了的意思 就是除了a到z其余类型的全都可以[区分大小写鸭]
//[^a-z0-9]表示除了小写英文和数字
</script> <script>
//偷小说 找到章节 右键点击源代码
// 过滤HTML标签 标签的规则就是一对<>中间任意字符都可以除了尖括号本身 .表示任意字符
window.onload=function (){ var oTxt1=document.getElementById('txt1');
var oTxt2=document.getElementById('txt2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function (){
var re=/<[^<>]+>/g;
oTxt2.value=oTxt1.value.replace(re,"");
}
}
</script>
</head>
<body>
<textarea id="txt1" rows="10" cols="40" /></textarea>
<input id="btn1" type="button" value="过滤" />
<textarea id="txt2" rows="10" cols="40" /></textarea> </body>
转义字符
\d 表示数字 [0-9]
\w 表示英文数字下划线 [a-z0-p_]
\s 空白字符
.
\D [^0-9]:除了0-9 \W \S
量词:个数
{n} 正好出现n次 \d{8} 8个数字 [1-9]\d{7}:第一位是1-9其余7位随意(电话号码啊啥的)
{n,m} 最少n次 最多m次 eg:qq号 [1-9]\d{4,10} 第一位非0其余四位或者10位
{n,}最少n次 最多不限
+ 等价{1,}//最少一次
?等价{0,1}
* {0,}
eg:固定电话 010-87496698 前面的010是可以省略的 所以就 (0\d{2,3}-)?[1-9]\d{7} ():分组
校验邮箱、
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>diyici</title>
<script>
//校验邮箱 一串英文,数字,下划线 @ 一串英文,数字 . 一串英文
// \w+ @ [a-z0-9]+ \. [a-z]+ 一串:+ .有任意字符的意思所以转义\.
window.onload=function (){
var oTxt=document.getElementById('txt1');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function (){ //var re=/\w+@[a-z0-9]\.[a-z]+/i;//加i是因为邮箱不需要区分大小写
//加上^$:
var re=/^\w+@[a-z0-9]+\.[a-z]+$/i;//意思就是这个字符串开头结尾已锁门中间只能是那些东西不能有别的 if(re.test(oTxt.value)){
/*专门来检验此re是否符合正则要求的 但是是字符串只要有一部分符合要求就认为他符合要求:申请K1076986799@qq.COM这是不符合要求的 但是test会返回true
^:排除/行首[字符串的开头] $行尾
*/
alert("合法的");
}
else{
alert('写错了')//不合法返回false
}
}
} </script>
</head>
<body>
<input type="text" id="txt1">
<input type="button" id="btn1" value="校验"/> </body>
</html>
【js】正则的更多相关文章
- js正则
JS正则 test:判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\ ...
- js正则匹配的一个日常应用
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...
- jS正则和WEB框架Django的入门
JS正则 -test 判断字符串是否符合规定的正则表达式 -exec 获取匹配的数据 test的例子: 从上述的例子我们可以看出,如果rep.test匹配到了就返回true,否则返回false exe ...
- js正则实现二代身份证号码验证详解
js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...
- js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“
js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“ var reg = /^[a-zA-Z]{1}(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d_@ ...
- 手机号码js正则验证
手机号码js正则验证 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (!myreg.test($(" ...
- js正则标志/g /i /m的用法,以及实例
js正则标志/g /i /m的用法,以及实例 正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了. 一,js正则标志/g,/i,/m说明 1,/ ...
- 记录一下JS正则的坑
JS正则的单行模式有点问题 总之 . 符号匹配换行符号会有问题 暂时的解决方案是 html = html.replace(/[\r\n]/g,""); 附加一个 html = ht ...
- 奇怪的JS正则之 /[A-z]/.test("\\"); // true
本文是在一个国外介绍JS的网站上转载过来的,作者很逗,先是举例JS让人XX的例子,再动手实践发现JS隐藏的黑知识.为什么 /[A-z]/.test("\\"); 是 true ,你 ...
- 撸一个JS正则小工具
写完正则在浏览器上检测自己写得对不对实在是不方便,于是就撸了一个JS正则小demo出来. demo demo展示 项目地址 代码部分 首先把布局样式先写好. <!DOCTYPE html> ...
随机推荐
- centos7.5误删python2.7之后,导致yum和Pythonm命令无法使用
问题描述 最近想要将服务器上的Python2.7升级成3.x的版本时.使用了如下命令: (1)强制删除已安装python及其关联 # rpm -qa|grep python|xargs rpm -ev ...
- 2.5 time 模块
- jmeter笔记(2)--组件介绍
1.测试计划 测试计划(Test Plan)是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器. 2.Threads(Users)-线程组 每个测试需求的必备组件,是用来模拟用户并发 ...
- Suffix Automaton
后缀自动机 先上SAM builder,备用链接.之前的垃圾博客,洛谷的某篇教程,饕餮传奇的题单. 后缀自动机,点数是2n! 首先对着代码讲一遍三种插入. inline void insert(cha ...
- JMeter 不同线程组间变量传递
JMeter元件都是有作用域的,而变量大多使用正则表达式提取器,要想在不通过线程组件使用变量参数,则需要设置全部变量 JMeter函数助手就提供了一个函数用于设置全局变量属性,实现的功能类似于在用户自 ...
- Python list和 np.Array 的转换关系
一.List转String 1.str list转 string a_list = ["h","e","l","l",& ...
- Django - 模式、简单使用
著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM) 视图负责与用户的交 ...
- SpringBoot系列:Pojo validation
JSR 303 规范了bean validation, Hibernate validator实现了JSR 303所有的规范, 同时也是最常用的validator 工具包. 使用 Hibernate ...
- Java之final关键字详解
1. 修饰类 当用final去修饰一个类的时候,表示这个类不能被继承. 注意: a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl. b. final类中的成员 ...
- 子级用了float浮动之后,如何撑开父元素,让父元素div自动适应高度
方法一:对父级设置固定高度 假如以上案例,我们知道内部div高度100px,那对父级设置css height为100px看看效果. 此方法缺点,父级是固定高度,而不随内容高度自适应高度,没高度.此方法 ...