正则表达式

来源:互联网 发布:企业网站关键词优化 编辑:程序博客网 时间:2024/06/07 01:20


正则表达式  

防止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、1cvar 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' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。| 指明两项之间的一个选择。要匹配 |,请使用 \|。{ 标记限定符表达式的开始。要匹配 {,请使用 \{。[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。( 和 ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?




0 0
原创粉丝点击