正则(PHP和JS)

xiaoxiao2025-06-18  13

警告:这不是详细说明正则怎么写的文章。

一、正则表达式

时间:小时 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); #输出1 //用法二,传入第三个参数,取址生成一个数组。 //一般来说,我们只关心匹配到的数组第0项,为正则匹配到的结果。 //如果使用括号,会依次拆分匹配项。 preg_match('/(bc)(de)/',$str,$match); print_r($match); //Array ( [0] => bcde [1] => bc [2] => de ) preg_match_all()类似上边,返回值匹配次数 0 或 n。$str = 'ABCdeABC'; //用法一 echo preg_match_all('/ABC/',$str);#输出2 //用法二,match变成二维数组。 preg_match_all('/ABC(de)?/',$str,$match); print_r($match); //[['ABCdeABC','ABC'],['de',null]] preg_replace() 返回替换后的字符串$str = 'ABCdeABC'; echo preg_replace('/ABC/','abc',$str);# 输出abcdeabc preg_grep() 返回匹配到的数组$arr1 = ['ABCdeABC','abc','ABC']; $arr2 = preg_grep('/ABC/',$arr1); print_r($arr2); //Array ( [0] => ABCdeABC [2] => ABC )

三、JS正则写法

语法直接量/pattern/attributesvar 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'); //true 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/);//返回1 //如果明确搜索什么,还是用indexOf('BC')吧... str.match() 匹配,返回匹配到的数组, 无则返回null。str.match(/abc/ig);//返回 ['ABC','ABC'] str.replace()替换,返回替换后的字符串str.replace(/abc/i,"");//返回deabc str.replace(/abc/ig,"");//返回de //隐藏手机号中间四位 '15388880131'.replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3"); //返回153****0131,这里$1,$2,$3分别代表3个()的匹配项。
转载请注明原文地址: https://www.6miu.com/read-5032091.html

最新回复(0)