【PHP】常用正则表达式(PHP+JS)

2017-07-04 0 条评论 992 次阅读 1 人点赞

我们在开发中经常会用到正则匹配来做一些简单的验证工作,正则表达式这东西一个人一个写法,临着要用再去自己想和写实在浪费时间,所以在这里罗列一些常用的正则表达式,在使用到的时候直接使用就好。话不多说上干货。

1.匹配邮箱

PHP版:

$str = '';
$isMatch = preg_match('/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,str = '';
console.log(pattern.test(str));

2.匹配手机号

PHP版:

$str = '';
$isMatch = preg_match('/(13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7}/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /(13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7}/,str = '';
console.log(pattern.test(str));

3.匹配中文

PHP版:

$str = '';
$isMatch = preg_match('/[\u4e00-\u9fa5]/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /[\u4e00-\u9fa5]/,str = '';
console.log(pattern.test(str));

4.匹配时间(格式为:时:分:秒)

PHP版本:

$str = '';
$isMatch = preg_match('/([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d/,str = '';
console.log(pattern.test(str));

5.匹配IPV4地址

PHP版:

$str = '';
$isMatch = preg_match('/(\d+)\.(\d+)\.(\d+)\.(\d+)/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /(\d+)\.(\d+)\.(\d+)\.(\d+)/,str = '';
console.log(pattern.test(str));

6.匹配身份证

PHP版:

$str = '';
$isMatch = preg_match('/\d{15}|\d{17}[0-9Xx]/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /\d{15}|\d{17}[0-9Xx]/,str = '';
console.log(pattern.test(str));

7.匹配日期(格式:年-月-日)

PHP版:

$str = '';
$isMatch = preg_match('/((((1[6-9]|[2-9]\d)\d{2})-(1[02]|0?[13578])-([12]\d|3[01]|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-(1
    [012]|0?[13456789])-([12]\d|30|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(1\d|2[0-8]|0?[1-9]))|(((1[6-9]|[2-9]\d)(0[48]|
    [2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /((((1[6-9]|[2-9]\d)\d{2})-(1[02]|0?[13578])-([12]\d|3[01]|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-(1[012]|0?[13456789])-([12]\d|30|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(1\d|2[0-8]|0?[1-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))/, str = '';
console.log(pattern.test(str));

8.匹配日期(格式:年/月/日)

PHP版:

$str = '';
$isMatch = preg_match('/((((1[6-9]|[2-9]\d)\d{2})\/(1[02]|0?[13578])\/([12]\d|3[01]|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})\/
    (1[012]|0?[13456789])\/([12]\d|30|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(1\d|2[0-8]|0?[1-9]))|(((1[6-9]|[2-9]\d)(0[
    48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /((((1[6-9]|[2-9]\d)\d{2})\/(1[02]|0?[13578])\/([12]\d|3[01]|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})\/(1[012]|0?[13456789])\/([12]\d|30|0?[1-9]))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(1\d|2[0-8]|0?[1-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))/,str = '';
console.log(pattern.test(str));

9.匹配正整数

PHP版:

$str = '';
$isMatch = preg_match('/[1-9]\d*/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /[1-9]\d*/,str = '';
console.log(pattern.test(str));

10.匹配负整数

PHP版:

$str = '';
$isMatch = preg_match('/-[1-9]\d*/', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /-[1-9]\d*/,str = '';
console.log(pattern.test(str));

11.电驴链接(似乎看到了老司机的微笑)

PHP版:

$str = '';
$isMatch= preg_match('/ed2k:\/\/\|file\|([^\|]+?)\|(\d+?)\|([0-9a-zA-Z]{32})\|((?:\/\|sources,([^\s\|]+?)\||h=([0-9a-zA-Z]{32})\||s=([^\s\|]+?)\||p=([^\s\|]+?)\|)*)\//', $str, $match);
var_dump($isMatch, $match);

JS版:

var pattern = /ed2k:\/\/\|file\|([^\|]+?)\|(\d+?)\|([0-9a-zA-Z]{32})\|((?:\/\|sources,([^\s\|]+?)\||h=([0-9a-zA-Z]{32})\||s=([^\s\|]+?)\||p=([^\s\|]+?)\|)*)\//,str = '';
console.log(pattern.test(str));

PS:如果你觉得本站内容对你有帮助,不如把本站收藏到你的收藏夹,以便下次查看~也欢迎在下方分享点赞以及发言讨论~

Kiwi

Valar Morghulis

文章评论(0)