常用的几个正则表达式的写法:
1. 去掉获取的字符串信息前后的空格用空字符串替换:
可以利用一个JavaScript函数实现:
function trim(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
var cookie = " this is a cookie value ";
cookie = cookie.replace(/^\s+|\s+$/g, '');
结果为 cookie 变成 "this is a cookie value"。前后空格全部去掉了。
另外:
^表示字符串必须以后面的规则开头, 在这里就是说字符串必须以\s*开头.
\s 是空格的意思, * 表示有0个或多个
\s* 就是有0个或多个空格
(^\s*) 表示的就是以0个空格或者多个空格开头
| 表示或的意思, 也就是满足| 左边的也成立, 满足 | 右面的也成立.
\s*前面说过了
$ 的意思是字符串必须以前面的规则结尾
(\s*$) 的意思就是, 以0个空格或者多个空格结尾
/.../g 是正则表达式的属性, 表示全文匹配, 而不是找到一个就停止.
所以这个正则表达式替换的就是前导空格和后导空格
因为有前导空格, 就说明以0个或多个空格开头, 满足正则表达式中 | 前面的条件: (^\s*)
而如果有后导空格, 就说明以0个或多个空格结尾, 满足正则表达式中 | 后面的条件: (\s*$)
2. 正则表达式对手机号码的校验:
正则表达式对手机号的验证^[1][3-8]+\\d{9}
^[1][3-8]\\d{9}$
^首字母
[1]必须是1,方格可以去掉吧。。
[3-8]第二个数字为3-8之间
+加表示至少一个[3-8]
\\d表示数字
{9}表示9个,就是9个数字。
3. 正则表达式如何验证邮箱
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
或者
^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$
4. 验证日期格式的正则表达式,形如 2013-07-12
/^(19|20)\d{2}-(0?\d|1[012])-(0?\d|[12]\d|3[01])$/;
这个是1900-2099,简单验证1-12月,1-31日,对于2月30这样的不管。如果都验证,这个正则表达式会很长,你看懂这个自己就会改了。例如:
<html>
<body>
<script language="javascript">
<!--
function test()
{
var pattern=/^(19|20)\d{2}-(0?\d|1[012])-(0?\d|[12]\d|3[01])$/;
var str=document.getElementById("str").value;
if(pattern.test(str)){alert("True!");}
else{alert("False!");}
}
-->
</script>
<input type="text" id="str">
<input type="button" value="Test" οnclick="test()">
</body>
</html>