复习字符串操作
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】正则的更多相关文章

  1. js正则

    JS正则 test:判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\ ...

  2. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  3. jS正则和WEB框架Django的入门

    JS正则 -test 判断字符串是否符合规定的正则表达式 -exec 获取匹配的数据 test的例子: 从上述的例子我们可以看出,如果rep.test匹配到了就返回true,否则返回false exe ...

  4. js正则实现二代身份证号码验证详解

    js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...

  5. js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“

    js  正则  以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“ var reg = /^[a-zA-Z]{1}(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d_@ ...

  6. 手机号码js正则验证

    手机号码js正则验证 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (!myreg.test($(" ...

  7. js正则标志/g /i /m的用法,以及实例

    js正则标志/g /i /m的用法,以及实例   正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了. 一,js正则标志/g,/i,/m说明 1,/ ...

  8. 记录一下JS正则的坑

    JS正则的单行模式有点问题 总之 . 符号匹配换行符号会有问题 暂时的解决方案是 html = html.replace(/[\r\n]/g,""); 附加一个 html = ht ...

  9. 奇怪的JS正则之 /[A-z]/.test("\\"); // true

    本文是在一个国外介绍JS的网站上转载过来的,作者很逗,先是举例JS让人XX的例子,再动手实践发现JS隐藏的黑知识.为什么 /[A-z]/.test("\\"); 是 true ,你 ...

  10. 撸一个JS正则小工具

    写完正则在浏览器上检测自己写得对不对实在是不方便,于是就撸了一个JS正则小demo出来. demo demo展示 项目地址 代码部分 首先把布局样式先写好. <!DOCTYPE html> ...

随机推荐

  1. 爬虫之Scrapy框架介绍

    Scrapy介绍 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内 ...

  2. python登录网页版微信发送消息

    # coding=utf-8 import datetime import time from selenium import webdriver url = "https://wx2.qq ...

  3. mongoDB 大文件存储方案, JS 支持展示

    文件存储 方式分类 传统方式 存储路径 仅存储文件路径, 本质为 字符串 优点: 节省空间 缺点: 不真实存储在数据库, 文件或者数据库发送变动需要修改数据库 存储文件本身 将文件转换成 二进制 存储 ...

  4. 使用AForge.NET Framework打开摄像头并截图 C#

    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count == ...

  5. 2017-12-19python全栈9期第四天第二节之列表的增删改查之切片

    #!/user/bin/python# -*- coding:utf-8 -*-li = ['zd',[1,3,4,5,6],'ls','ww','zl']l1 = li[0]print(l1)l2 ...

  6. 关于ddl(新增字段)对数据库锁表|读写操作的影响_资料

    1.对一个表执行ddl(新增字段)会不会阻塞表,影响读写? 在一次项目升级之前需要执行一个新增字段的脚本(alter table...),表的数据量是260多万,执行时间是72秒,感觉略长,不知道会不 ...

  7. 老男孩Python全栈学习 S9 日常作业 007

    1.把列表中所有姓周的人的信息删掉 lst = ['周老二', '周星星', '麻花藤', '周扒皮'] lst = ['周老二', '周星星', '麻花藤', '周扒皮'] lst2 = [] fo ...

  8. SpringBoot项目@RestController使用 redirect 重定向无效

    Spring MVC项目中页面重定向一般使用return "redirect:/other/controller/";即可. 而Spring Boot当我们使用了@RestCont ...

  9. 解决Ubuntu 17.10设置面板打不开的问题

    问题描述 对于Ubuntu桌面系统我用得不多,最近安装了Ubuntu17.10使用,一直都没遇到什么大的问题,界面风格已经与Windows很相似,总体体验还不错.直到某一天我突然手痒痒把Dock面板从 ...

  10. [物理学与PDEs]第5章习题4 广义 Hookean 定律的张量的对称性

    设材料是超弹性的, 并设参考构形为自然状态, 证明由线性化得到的张量 ${\bf A}=(a_{ijkl})=\sex{2\cfrac{\p \bar p_{ij}}{c_{kl}}}$ 具有以下的对 ...