PHP Regex preg_match电子邮件验证

时间:2015-10-10 05:34:18

标签: php regex

$email = 'john@business.com';
if(preg_match(\w+(@business.com)\z), $email){code goes here}

当$ email包含一个完全以@business.com结尾的电子邮件地址时,我正尝试在此条件的“代码转到此处”部分执行代码。

我觉得我可能误解了preg_match的工作原理,但是我找不到任何关于为什么if语句评估为false的信息。

有许多例子和其他人有类似的问题,但他们的问题的解决方案似乎没有强调我的代码的任何问题。

我正在处理这个例子:

http://php.net/manual/en/function.preg-match.php

<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

1 个答案:

答案 0 :(得分:1)

无需使用regex您只需使用PHP的strstr功能

if(strstr('xyz@business.com',"@") == "@business.com"){
  // code goes here
}

或者对于使用正则表达式,您可以像使用

一样使用Positive Lookbehind
if(preg_match('~(?<=\w)(@business.com)~',$string)!==false){
    // code goes here
}

Demo