复习字符串操作
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. P2613 有理数取余

    原题链接 https://www.luogu.org/problemnew/show/P2613 在这里虽然是讲洛谷的题解,但用到的数论知识,归并到数论里也不为过! 进入正题: 首先看到题面:给出一个 ...

  2. 安装 R 包报错 clang: error: unsupported option '-fopenmp' 的解决方法

    MacOS 上安装 R 包 install.packages("data.table") 后面提示是否安装需要编译的版本: Do you want to install from ...

  3. React Native——react-navigation的使用

    在 React Native 中,官方已经推荐使用 react-navigation 来实现各个界面的跳转和不同板块的切换. react-navigation 主要包括三个组件: StackNavig ...

  4. django restframework 跨域访问

    场景介绍: 在Django开发过程中,使用前后端分离设计的站点越来越多,如Django+VUE.Django+Angular.在使用DjangoRestFramework开发API的过程中,由于前端站 ...

  5. sublime中编译的sass如何改变css输出风格?【这里有答案】

    由于在网上找了一遍没找到如果在sublime中将sass编译的css转换成为自己喜欢的风格,所以换了一种思路搜索到了答案,这里我将讲述如果更改. 首先sass总共有四种编译风格 (1) nested( ...

  6. NOI-OJ 1.7 ID:21 单词替换

    整体思路 本题如果使用scanf每次读入一个单词.比对替换后再进行输出的话就十分简单,使用这种方法必须要用数组把读入的所有单词存起来,读入的count个单词的前n-2个是原文,第n-1个是查找的单词, ...

  7. [译]Ocelot - Middleware Injection and Overrides

    原文 使用这个特性的时候要小心点. 可以如下一样提供一些中间件用以覆盖默认的中间件: var configuration = new OcelotPipelineConfiguration { Pre ...

  8. python 写代码笔记 2017.6.15

    其实并不是越复杂的代码越好,简单高效才是好. 关键是思路和逻辑,还有多看别人写的代码. 学习到了:)

  9. Django2.1配置xadmin2.0

    系统:Ubuntu18.04 环境:py3.6, django2.17, xadmin-django2.0 xadmin-django2.0下载:xadmin2.0(进入github后,在Branch ...

  10. 【linux】基础知识

    为什么学习Linux? 服务器大多数都是linux操作系统,学习[上线][运维]是我们前端开发工程师的必备技能.Linux系统和maxOS系统十分类似,所以推荐大家使用max电脑工作. Linux的版 ...