龙空技术网

JavaScript 正则表达式使用

寒笛过霜天 61

前言:

此刻我们对“js正则表达式限制数字范围”大致比较关怀,咱们都想要学习一些“js正则表达式限制数字范围”的相关资讯。那么小编也在网摘上搜集了一些关于“js正则表达式限制数字范围””的相关资讯,希望我们能喜欢,姐妹们一起来学习一下吧!

一 ()小括号使用

作用:

①提高子表达式优先级

②从大的字符串中拆分小的内容出来(模式单元)

③模式单元重复匹配

实例1

<script type="text/javascript">//()小括号模式单元重复匹配var str = "2015-06-06 06:06:06";var reg = /[0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+/;// \y 代表匹配前边第y个小括号模式单元内容// 要求:月份、日期、小时、分钟、秒的内容完全一致var reg = /([0-9]+)-([0-9]+)-\2 \2:\2:\2/;//["2015-06-06 06:06:06", "2015", "06"]var str = "2015-11-11 11:25:11";//nullvar rst = str.match(reg);document.write(rst);</script>

实例2:

<script type="text/javascript">//()小括号模式单元重复匹配// \y 代表匹配前边第y个小括号模式单元内容// 模式单元重复匹配规则:值的"类型"和"大小"完全一致var str = "2015-09-09-09-09-09";var reg = /[0-9]+(-[0-9]+)\1\1\1\1/;//小括号内容在后边有重复出现4次//{m}、*、+ 等重复匹配:值的“类型”一致即可var str = "2015-09-069-1001-09-059";var reg = /[0-9]+(-[0-9]+){5}/;//小括号内容在后边有重复出现4次var rst = str.match(reg);document.write(rst);</script>

实例3:

<script type="text/javascript">//()小括号模式单元数法//① 横向:从左往右数//② 纵向:从外往里数//③ 横向、纵向:先纵向、再横向var reg = /([0-9]+-(([0-9]+)-[0-9]+)) (([0-9]+:([0-9]+)):[0-9]+)/;var str = "2015-06-15 15:04:20";//["2015-06-15 15:04:20", "2015-06-15", "06-15", "06", "15:04:20", "15:04", "04"]var rst = str.match(reg);document.write(rst);</script>

二 组合和限制字符

1.组合字符

\d :表示数字[0-9]

\D :表示非数字[^0-9]

\w :表示字母、数字、下划线其中一个[a-zA-Z0-9_]

\W :非字母、数字、下划线

\s :表示空格(与php空白字符不同[\f\n\r\t\v])

\S :表示非空格

\b :表示单词边界

\B :表示非单词边界

<script type="text/javascript">//组合字符//\d :表示数字[0-9]var str = "2015/6/8";var reg = /\d+/;//["2015"]//\D :表示非数字[^0-9]var str = "1997@#xianggang";var reg = /\D+/;//["@#xianggang"]//\w :表示字母、数字、下划线其中一个[a-zA-Z0-9_]var str = "tom_NewYork@163.com";var reg = /\w+/g;//["tom_NewYork", "163", "com"]//\W :非字母、数字、下划线var str = 'hello@$%#%#$><>';var reg = /\W+/;//["@$%#%#$><>"]//\s :表示空格var str = "beijing \t shanghai";var reg = /[a-z]+\s\s\s\s\s[a-z]+/;//["beijing shanghai"]//\S :表示非空格//\b :表示单词边界 this is a bookvar str = "this is a book";var reg = /\bis\b/; //["is"]//this was a book;//var new_str = str.replace(被替换内容/正则内容,替换内容);var new_str = str.replace(reg,'was');document.write(new_str);//this was a book//\B :表示非单词边界var rst = str.match(reg);document.write(rst);</script>

三 限制字符

{m} : 其前一单元严格出现m次

{m,} : 其前一单元出现至少m次, 至多不限制

{m,n} : 其前一单元出现至少m, 至多n次

[^lsjd]:不是中括号中的任意一个字符

[^a-f]: 不是中括号中中杠的两端字符范围

var reg = /^apple/; 匹配内容开始有apple字样

var reg = /[^a-h]/; 不给匹配a-h之间的字母, 可以匹配其他字符

四 正向反向预查

1. 正向预查

辅助条件 都在查找内容的右边。

1.1 正向匹配:

我们要查找出来的内容,右边必须出现指定的信息,并且其是辅助条件,不是结果的一部分。

var reg = /pattern(?=模式)/; 括号内是辅助条件(可以通过具体"模式"进行设置)

例如:

小写字母字符串后边要出现连续数字信息

var reg = /[a-z]+(?=\d+)/;

beijing2008 xianggang1997 aomen1999

LiaoNing014 ShanDong2013 ####2012

taiwan@$(

1.2 正向不匹配:

我们要查找出来的内容,右边不能出现指定的信息,右边的信息是辅助条件,不是结果额一部分。

var reg = /pattern(?!模式)/; 蓝色是辅助条件,可以通过具体"模式"进行设置

例如:

today后边不能出现连续数字信息

var reg = /today(?!\d+)/;

today123 today### todayABC254 today_good

实例1:

<script type="text/javascript">//正向预查//正向匹配//var reg = /匹配内容(?=辅助条件)/;var reg = /[a-z]+(?=\d+)/;var str = "xianggang1997";//["xianggang"]var str = "aomen1999";//["aomen"]var str = "beijing";//nullvar str = "####2004";//nullvar str = "%%%%1998";//nullvar str = "SHANGHAI2012";//null//正向不匹配//var reg = /匹配内容(?!辅助条件)/;//匹配一个4位字母字符串,该字符串右边不能出现#或%等内容var str ="milk@163.com";//["milk"]var str ="desk#312";//nullvar str ="helo%abc";//nullvar str = "beijing2008";//["beij"]var reg = /[a-z]{4}(?!#|%)/;var rst = str.match(reg);document.write(rst);</script>

实例2:

<script type="text/javascript">//正向预查//正向匹配var str = ";;//获得上述url的get参数的名称//获得字母字符串,条件是右边出现“=”号即可var reg = /[a-z]+(?==)/g;//["name", "age", "addr"]var rst = str.match(reg);document.write(rst);</script>

2. 反向预查(php支持)

辅助条件在被查询内容的左边

2.1 反向匹配

左边必须出现指定信息

$reg = /(?<=模式)pattern/; pattern是被匹配内容,左边蓝色是辅助条件

2.2 反向不匹配

左边不能出现指定信息

$reg = /(?<!模式)pattern/; pattern是被匹配内容,左边蓝色是辅助条件

<?php//php里边使用"反向预查"//反向匹配//$reg = /(?<=辅助内容)模式内容/;//匹配一个字母字符串,要求"左边"出现数字信息$str = "1997xianggang";//Array ( [0] => xianggang )$str = "@@##aomen";//Array ()$reg = "/(?<=\d{4})[a-z]+/";//反向不匹配//$reg = /(?<!辅助内容)模式内容/;//匹配一个连续9个字母的字符串,要求"左边"不出现4个数字信息$str = "1997xianggang";//Array ()$str = "@@##shanghaih";//Array ( [0] => shanghaih )$str = "369shijiazhu";//Array ( [0] => shijiazhu )$reg = "/(?<!\d{4})[a-z]{9}/";preg_match($reg,$str,$out);print_r($out);

标签: #js正则表达式限制数字范围