警告:这不是详细说明正则怎么写的文章。
一、正则表达式
时间:小时 00-23 '/(^[0-1][0-9]$)|(^2[0-3]$)/';时间:分钟 00-59 '/^[0-5][0-9]$/';手机号:1开头,第二个是3或4或5或7或8,后边9位数字结尾 '/^1[3|4|5|7|8]\d{9}/';邮箱 '/^[\w-]{4,}@[\w]+\.(com|cn)$/';
二、PHP正则方法
preg_match() 返回值匹配次数 0 或 1,第一次匹配后停止搜索。
$str = 'abcdef';
echo preg_match('/abc/',$str);
preg_match('/(bc)(de)/',$str,$match);
print_r($match);
preg_match_all()类似上边,返回值匹配次数 0 或 n。
$str = 'ABCdeABC';
echo preg_match_all('/ABC/',$str);
preg_match_all('/ABC(de)?/',$str,$match);
print_r($match);
preg_replace() 返回替换后的字符串
$str = 'ABCdeABC';
echo preg_replace('/ABC/','abc',$str);
preg_grep() 返回匹配到的数组
$arr1 = ['ABCdeABC','abc','ABC'];
$arr2 = preg_grep('/ABC/',$arr1);
print_r($arr2);
三、JS正则写法
语法直接量/pattern/attributes
var str
= 'abc123de';
/[a-z]/g;
创建 RegExp 对象的语法new RegExp(pattern, attributes)
var regexp
= new RegExp(/[a-z]/,'g');
注1:JS的正则是不需要单引号或者双引号包着的。 注2:关于attributes i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m 执行多行匹配。
四、JS正则方法
regexp.test() 检索,字符串是否符合正则表达式,返回 true 或 false
/abc/i.test('ABCdeABC');
regexp.exec() 匹配, 无则返回null。
var str
= "ABCdeABC";
var regexp
= new RegExp("ABC","g");
var result
;
while ((result
= regexp
.exec(str
)) != null) {
console
.log(result
,result
.index
,regexp
.lastIndex
);
}
五、JS字符串方法中的正则
str.search() 搜索,返回第一个与正则匹配的子串位置, 无返回-1。
var str
= 'ABCdeABC';
str
.search(/BC/);
str.match() 匹配,返回匹配到的数组, 无则返回null。str
.match(/abc/ig);
str.replace()替换,返回替换后的字符串str
.replace(/abc/i,"");
str
.replace(/abc/ig,"");
'15388880131'.replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3");