我需要檢查textarea文本中的任何電子郵件的存在。
如果存在任何電子郵件,表單應該失敗。Laravel驗證正則表達式 - 文本內的電子郵件
我做了正則表達式失敗,如果沒有電子郵件存在regex:/[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/
它應該很容易做否定,但我沒有任何成功。
我需要檢查textarea文本中的任何電子郵件的存在。
如果存在任何電子郵件,表單應該失敗。Laravel驗證正則表達式 - 文本內的電子郵件
我做了正則表達式失敗,如果沒有電子郵件存在regex:/[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/
它應該很容易做否定,但我沒有任何成功。
這段代碼添加到AppServiceProvider
boot
方法:
Validator::extend('not_regex', function($attribute, $value, $parameters, $validator) {
if (!is_string($value) && !is_numeric($value)) {
return false;
}
return !preg_match($parameters[0], $value);
});
,然後只用你的正則表達式是這樣的:
not_regex:"/[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/"
工作正常,如果文本中有任何電子郵件地址,它會通過。但是我需要而且不能成功的是對方:在文本中沒有任何電子郵件時通過。 – ruinobreferreira
啊,好的。出於某種原因,在Laravel中沒有這樣的驗證規則,因爲not_regex,並且我認爲它只能用自定義驗證規則。你已經嘗試過了嗎?如果需要的話,我可以舉個例子。 – Bushikot
太棒了!因爲我找不出一個正則表達式來完成這項工作,所以我也是這樣。但是現在我只是陷入'preg_match():無結尾分隔符'/'found'異常。我已經嘗試將規則放入數組中,但仍然不行。 :/ – ruinobreferreira
我認爲解決這個問題的最好方法是創建自己的custom validation rule。這樣你就可以使用格式良好的代碼來解決這個問題。
Laravel帶有一個非常容易實現的「email」驗證規則。您可以閱讀this link中的所有信息和其他驗證方法。
我知道這個規則。不是我在找什麼。 – ruinobreferreira
啊我看到了,在這種情況下,自定義驗證是您的最佳選擇! – Luke
你知道有剛有規則|電子郵件,以檢查它是否一個真實的電子郵件地址? 電子郵件:驗證字段必須格式化爲電子郵件地址。 – Duikboot
我知道電子郵件規則。但是該規則是檢查輸入字段是否形成良好的電子郵件。我在尋找的是textarea的驗證規則,該規則檢查文本中是否有電子郵件。 – ruinobreferreira