我想在Laravel 5.1验证中使用regex
检查以逗号分隔的电子邮件地址,我在regex
下面创建了电子邮件,但它不适用于我。
regex: /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i
我想允许这样的电子邮件:test1test.com, test2@test.com, test3@test.com
这是我的验证示例代码:
$rules = array(
'email' => 'regex:/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i',
);
$messages = [
'email.regex' => 'Please enter valid Email.',
];
$validator = Validator::make(Input::all(), $rules, $messages);
if ($validator->fails()) {
} else {
}
答案 0 :(得分:5)
你可以试试这个
foreach(explode(',', $sEmailAddresses) AS $sEmailAddress) {
$bValid |= filter_var($sEmailAddress, FILTER_VALIDATE_EMAIL);
}
$sResult = ($bValid) ? 'Both are valid' : 'One of them are not';
答案 1 :(得分:0)
这是java脚本验证
var emails='test1test.com,test2@test.com,test3@test.com';
var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var result = emails.replace(/\s/g, "").split(",");
for(var i = 0;i < result.length;i++) {
if(!regex.test(result[i])) {
return false;
}
}
答案 2 :(得分:0)
您可以使用Request
类的replace()
方法将输入转换为包含电子邮件地址的数组,然后对其进行数组验证:
// Split form input value on commas followed by any number of spaces (returns an array)
$request->replace(array('email' => preg_split('~, *~', $request->email)));
// How we should define our validator rule
$validator = Validator::make($request->all(), [
'email.*' => 'email',
]);
// Turn back to our first value
$request->email = implode(', ', $request->email);
答案 3 :(得分:0)
尝试这个替代方案,
/^([_a-z0-9\-]+)(\.[_a-z0-9\-]+)*@([a-z0-9\-]{2,}\.)*([a-z]{2,4})(,([_a-z0-9\-]+)(\.[_a-z0-9\-]+)*@([a-z0-9\-]{2,}\.)*([a-z]{2,4}))*$/
验证您的电子邮件正则表达式。
答案 4 :(得分:0)
回复@Alex Andrei的评论:
下面你将找到我用来获取你正在寻找的结果的函数的例子,使用PHP explode()来分隔电子邮件。显然,为了获得您需要的确切功能,您应该深入研究文档:)
public function validateEmail()
{
$emails = "john@email.com,jack@email.com,notanemail,jill@email.com";
$explodedEmails = explode(",", $emails);
foreach ($explodedEmails as $email)
{
$validator = \Validator::make(
array('individualEmail' => $email),
array('individualEmail' => 'email')
);
if ($validator->passes())
{
echo "Email correct <br />";
}
elseif($validator->fails())
{
echo "Email not correct <br />";
}
};
}
这回应:
Email correct
Email correct
Email not correct
Email correct