正则表达式


正则表达式  

防止SQL注入和防止XPATH注入 都是 输入一些恶意字符串,对网站进行攻击。
条件1:会使用正则表达式
语法:
^ 开始 $ 结束
{}
[]
(|)
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
[ ]? 表示这个空格出现0次或者1次

正则表达式
test:
  判断字符串是否存在指定模式,返回值是bollean 
exec:
   查找并且返回一个结果数组,
查找并且返回当前的匹配结果, 并且以数组的形式返回
exec方法受参数 g的影响。若指定了 g,则下次调用 exec时,会从上个匹配的 lastIndex开始查找。
var str ="1a1b1c";
var reg =new RegExp("1.", "");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述两个输出都是 1a。现在再看看指定参数 g:
var str ="1a1b1c";
var reg =new RegExp("1.", "g");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);

上述第一个输出 1a,第二个输出 1b。

match :
  是string 对象的一个方法

正则表达式参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
var str ="1a1b1c";
var reg =new RegExp("1.", "");
alert(str.match(reg));
match这个方法有点像 exec,但:exec是 RegExp对象的方法;math是 String对象的方法。二者还有一个不同点,就是对参数 g的解释。
如果指定了参数 g,那么match一次返回所有的结果。
var str ="1a1b1c";
var reg =new RegExp("1.", "g");
alert(str.match(reg));
//alert(str.match(reg)); //此句同上句的结果是一样的
此结果为一个数组,有三个元素,分别是:1a、1b、1c

var pattern = new RegExp( 表达式 ,   参数)
表达式/             /
参数 g  i  m



HTML页面:

<html>
<head>
    <title>Demo Example</title>
    <script type="text/javascript" src="jquery-1.12.0.min.js"></script>
    <script type="text/javascript" src="jx.core.js"></script>
    <!--<script type="text/javascript" src="jc.util.js"></script>-->
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="demo.css"/>
</head>
<body>
    <!--<input id="demo" value=""></input>
    <input id="btn"  type="button" value ="点击"></input>-->
    <!--<table id="demotable" border="1">
    	 <tr>
    	 	 <td>Row1 cell1</td>
    	 	 <td>Row1 cell2</td>
    	 	 <td>Row1 cell3</td>
    	 </tr>
    	 <tr>
    	 	 <td>Row2 cell1</td>
    	 	 <td>Row2 cell2</td>
    	 	 <td>Row2 cell3</td>
    	 </tr>
    </table>-->
     <tr>
				<th width="100px"><font color="red">*</font>登录名:</th>
				<td>
					<input  id="input" type="text" class="ui-input" name="loginID" dataType="English" minLength="2" maxLength="50"/>
					<span class="tip">请输入2-50位英文字母作为登录名,不能重复</span>
				</td>
			</tr>
			<input id="btn" type="button"value="点击"/>
    <!--<li><span title="点击">点击</span></li>-->
</body>
</html>

JS代码:

(function(){
	
	$('#btn').click(function(){
		  var pattern = /^[0-9]{1,}[a-z]{1}[0-9]{1,}$/i;
		  var str = '12a0000';
		  console.log(pattern.test(str));
		  if(pattern.test(str)){
		  	  alert('匹配');
		  	}else{
		  		alert('不匹配');
		  	}
		  
		});

})

正则匹配中需要使用转义符号的:

^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
. 匹配除换行符 \n 之外的任何单字符。要匹配 .,请使用 \。
\ 将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
| 指明两项之间的一个选择。要匹配 |,请使用 \|。
{ 标记限定符表达式的开始。要匹配 {,请使用 \{。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。
( 和 ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?




wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值