js正则表达式:
. 任意字符(换行符除外)
\d 数字 0-9
\D 非数字
\w 匹配字母数字下划线a-z 0-9 _
\W 非w即匹配除字母下划线以外的特殊字符
\s 空格符 换行符
[...] 字符范围
[^...] 字符范围以外
^ 行首
$ 行尾
\b 零宽单词边界 ??? 即匹配字与空格之间的边界如\bter.test("terout") ter\b.test("outer")
\B 非\b
\t\r\n\v\f tab 回车 换行 垂直制表符 换页符
\转义 如 /\^123/.test("^123")
{x}\1分组 /{abc]\1/.test("abcabc")
{?:x}仅分组 /{?:abc}{def}\1/.test("abcdefdef")
重复:
x* abc*匹配 ab abc abcc abccc//重复任意次
x+ abc+ 匹配 abc abcc abccc //即重复最少一次
x*? 非贪婪算法如:/ abc*?/ 在abccc中匹配ab
x+? 如:/abc+?/ 在abccc中匹配abc//
x{n} 重复n次; x{n} n+次; x{n,m} 重复 x大于等于n小于等于m次
flag:
/g i m global 全局 ignoreCase 无视大小写 multiline 跨行
RegExp("abc","mgi")
RegExp 方法:
/abc/.exec("abcdef");//返回匹配字符串'abc"
/abc/.test("abc");//返回bool值true
/abc/.toString();// 转化成字符串"/abc/"
var reg = /abc/; reg.compile("def");
reg.test("def");//true
string与正则:
String.prototype.search 检索位置 ''abcabcdef'.search(/{abc}\1/);//返回索引0
.replace 替换 "aabbcc".replace(/b+?/,"1"); //aa1bcc
.match 匹配并获得 "aabbccbb".match(/b+/g); // ["bb","bb"]
.spilt 切割 "aabbcc".split (/b+/);//["aa","cc"]
正则常规应用(php):
<?php
$user = array(
'name' => 'example',
'email' => 'example@example123.com',
'mobile' => '15975586535'
);
//进行一般性验证
if (empty($user)) {
//die 失败中断 打印信息
die('用户信息不能为空');
}
if (strlen($user['name']) < 6) {
die('用户名长度最少为6位');
}
//用户名必须为字母、数字与下划线
if (!preg_match('/^\w+$/i', $user['name'])) {
die('用户名不合法');
}
//验证邮箱格式是否正确
if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) {
die('邮箱不合法');
}
//手机号必须为11位数字,且为1开头
if (!preg_match('/^1\d{10}$/i', $user['mobile'])) {
die('手机号不合法');
}
//echo 打印“ ”
echo '用户信息验证成功';
学习中,不足之处请见谅。