前言:
如今咱们对“js正则表达式限制数字范围”大约比较着重,我们都想要学习一些“js正则表达式限制数字范围”的相关内容。那么小编同时在网摘上收集了一些对于“js正则表达式限制数字范围””的相关知识,希望各位老铁们能喜欢,咱们快快来了解一下吧!1. 什么是正则表达式
正则表达式就是记录文本规则的代码
正则表达式是由普通字符(例如字符 a A到 zZ)以及特殊字符(称为元字符)组成的文字模式。
正则表达式作为一个模板, 将某个字符模式与所搜索的字符串进行匹配。
在处理程序或网页时, 经常会有查找或替换符合某些复杂规则的字符串的需要。
2. 历史
正则表达式的"祖先"可以一直上溯至对人类神经系统如何工作的早期研究。
1956年, 一位叫Stephen Kleene的数学家在McCulloch和Pitts早期工作的基础上, 发表论文使用了正则表达式。
正则表达式的第一个实用应用程序就是Unix中的qed编辑器
3. 作用
①对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证
13\d{9}
[1-9]\d{4,11}
②网络爬虫(信息采集)(一个网站到另一个网站的页面上去获取对方的相关信息)
③内容替换、获取
4. 使用正则
正则组成内容:
普通字符(字母/数字/标点符号/特殊符号)、定义字符集、组合字符集、特殊字符集、限制字符集、模式修正符等
<script type="text/javascript">
//简单使用正则
//被匹配字符串
var str = "this is Monday";
//定义正则
var reg = /was/;
var str = "lksdl%&@@#%@_--";
var reg = /lksdl%&@@#%@_-/;
//进行匹配
//被匹配字符串.match(正则); 会返回匹配的对象结果
//没有匹配到就返回 null
var rst = str.match(reg);
document.write(rst);
</script>
4.1 定义字符集组成
定义字符集
[a-e]表示a到e这些字符中的某一个字符
[aeiou]表示aeiou这5个字符其中的某一个字符
[a-zA-Z]表示大写、小写字母中的某一个字符
[a-zA-Z0-9_-]
[0-9]表示0到9之间任意一个数字
[5-9]
[9-3] [z-a] 不能从大往小写,有语法错误
<script type="text/javascript">
//定义字符集
//没有特殊说明,都是“单次匹配”
//从字符串左边寻找到第一个符合正则的内容即可
//[a-z] [c-g]
var str = "hello";
var reg = /[b-f]/; //[e]
var reg = /[a-z]/; //[h]
//[a-zA-Z]
var str = "BeiJing";
var reg = /[a-zA-Z]/; //["B"]
var reg = /[a-z]/; //["e"]
//[a-zA-Z_]
var str = "Tom_123@163.com";
var reg = /[a-zA-Z_]/; //["T"]
//[0-9] [5-7]
var reg = /[4-9]/; //["6"]
//var reg = /[9-3]/; //错误用法
//[ympwx]
var reg = /[ympwx]/; //["m"]
var rst = str.match(reg);
document.write(rst);
</script>
4.2 特别字符组成
特别字符
$ : 匹配输入字符串的结尾位置。
^ : 表示字符串的开始位置
( ): 标记一个子表达式的开始和结束位置。
* : 其前面那个单元出现0次或以上(任意次数)
. : 匹配除换行符 \n之外的任何单字符 .*
+ : 其前面那个单元出现1次或以上
? : 其前面那个单元出现0次或1次
\ : 这个符号是用来转义的
| : 指明两项之间的一个选择
<script type="text/javascript">
//特别字符集
//没有特殊说明, 都是"单次匹配"
//从字符串左边寻找到第一个符合正则的内容即可
//"单次部分"匹配
//+ : 其前面那个单元出现1次或以上
var str = "2015-6-7";
var reg = /[0-9]+/;//["2015"]
var str = "gooogle";
var reg = /go+gle/;//["gooogle"]
//* : 其前面那个单元出现0次或以上(任意次数)
var str = "todayis20150607";
var reg = /[0-9]*/;//[""] 出现0次数字, *还有一层含义, 必须以前面那个单元开头
var str = "2015-0607todayis";
var reg = /[0-9]*/;//["2015"] 出现8次数字
//? : 其前面那个单元出现0次或1次
var reg = /go?gle/;
var str = "google";//null
var str = "gogle";//["gogle"]
var str = "ggle";//["ggle"]
var rst = str.match(reg);
document.write(rst);
</script>
<script type="text/javascript">
//特别字符集
//没有特殊说明, 都是"单次匹配"
//从字符串左边寻找到第一个符合正则的内容即可
//| : 或, 指明两项之间的一个选择
var str = "tom like pear,monkey like banana, cat like fish";
var reg = /banana|pear/;//["pear"]
//. : 匹配除换行符 \n之外的任何单字符 .*
var str = "slkdl(*(*^*&GHOIUY\n*&TGUIHU^$%#$%";
var reg = /.*/;//["slkdl(*(*^*&GHOIUY"]
//\ : 这个符号是用来转义的
// 把一些符号的特殊意思去掉,只保留符号最本质的意思
var str = "192.168.32.56";
var reg = /[0-9]+\.[0-9]+/;
var str = "hello*world";
var reg = /hello\*world/;//["hello*world"]
var rst = str.match(reg);
document.write(rst);
</script>
<script type="text/javascript">
//特别字符集
//没有特殊说明, 都是"单次匹配"
//从字符串左边寻找到第一个符合正则的内容即可
//^ : 表示字符串的开始位置(托字符)
var str = "Monkey like banana";
var reg = /^banana/; //banana必须作为字符串的开始位置出现
var reg = /^Monkey/; //["Monkey"] Monkey必须作为字符串的开始位置出现
//$ : 匹配输入字符串的结尾位置。
var reg = /banana$/;//banana必须出现在字符串的结尾位置
//【每个正常的正则表达式都要使用^和$符号】
//可以通过正则对目标字符串进行"整体"匹配
//{m}前边单元严格出现m次
var str = "13587287167";
var reg = /^13[0-9]{9}$/;
var rst = str.match(reg);
document.write(rst);
</script>
<script type="text/javascript">
//特别字符集
//没有特殊说明, 都是"单次匹配"
//从字符串左边寻找到第一个符合正则的内容即可
//( ): 标记一个子表达式的开始和结束位置。
// 同时成为"模式单元"
// 作用:
// ① 提高子表达式优先级
var reg = /(go)+gle/;
var str = "gooooogle";//null
var str = "gogogogogogogle";//["gogogogogogogle", "go"]
// ② 从一个大的字符串里边拆分小的内容出来
var str = '<h3 style="padding-bottom:0px;">06月07日</h3>';
var reg = /<.*>(.*)<.*>/;//["<h3 style="padding-bottom:0px;">06月07日</h3>", "06月07日"]
var str = "2015-06-07";
var reg = /([0-9]+)-([0-9]+)-([0-9]+)/;//["2015-06-07", "2015", "06", "07"]
var rst = str.match(reg);
//document.write(rst[1]);//06月07日
//document.write("月份:"+rst[2]);//月份:06
document.write(rst);
</script>
4.3 模式修正符组成
var 模式名称 = /模式内容/模式修正符;
模式修正符:
i 忽略大小写
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止), 进行全局匹配的时候不给体现"模式单元"内容
请注意, 无论 RegExpObject 是否是全局模式, exec() 都会把完整的细节(子表达式)添加到它返回的数组中
<script type="text/javascript">
//模式修正符
//i->忽略大小写
//g->全局匹配(查找所有匹配而非在找到第一个匹配后停止), 进行全局匹配的时候不给体现"模式单元"内容
var str = "BeiJing and ShangHai";
var reg = /[a-z]+/ig;//["BeiJing", "and", "ShangHai"]
var str = "BeiJing and ShangHai";
var reg = /[a-z]+/i; ["BeiJing"]
var str = "2015-06-07";
var reg = /[0-9]+/g;//["2015", "06", "07"]
var str = "2015-06-07";
var reg = /[0-9]+/; //["2015"]
var str = "2015hello1997xianggang";
var reg = /[0-9]+([a-z]+)/g;//["2015hello", "1997xianggang"]
var str = "2015hello1997xianggang";
var reg = /[0-9]+([a-z]+)/;//["2015hello", "hello"] 子表达式
var rst = str.match(reg);
document.write(rst);
</script>
4.4 匹配中文
var str = "一本书";
var re = /[\u4e00-\u9fa5]{2}/g;//匹配汉字
console.log(str.match(re)) //[一本]
标签: #js正则表达式限制数字范围