将Custom Regex规则转换为Laravel验证器

时间:2019-04-09 05:45:51

标签: php regex laravel laravel-5

我有多个表单(> 20),我正在寻找使用Regex验证表单输入字段的方法。

我想创建一个新规则并调用rull进行验证,而不是手动填充正则表达式来验证控制器。

以防万一,如果我需要更新正则表达式模式,则可以一次完成它,而不必手动以所有形式进行。

我不确定如何将Regex模式添加到规则中。

我的步骤:

php artisan make:rule MobileNo

我的正则表达式模式

用于验证电话号码以及固定电话号码

`regex:/(^[0-9]+$)+/`

标题验证:

  

regex:/(^[A-Za-z0-9@ ()%,:<>?*&-]+$)+/

请指导我如何实现?

2 个答案:

答案 0 :(得分:2)

var app = new Vue({ el: '#app', data: { cards: [] }, methods: { scroll(card) { window.onscroll = () => { let bottomOfWindow = document.documentElement.scrollTop + window.innerHeight === document.documentElement.offsetHeight; if(bottomOfWindow) { const url = 'https://api.jsonbin.io/b/5cab36508b8d1301a25bd8fa/1/'; axios.get(url) .then(response => { for (var i = 0; i < this.cards.length; i++) { console.log('Cards id: ', this.cards[i].id) if(this.cards[i].id !== response.data.results[i].id){ for (var x = 0; x < 2; x++) { this.cards.push(response.data.results[x]) } } else{ console.log('No more cards to load') } } } }) } } }, getAPI(){ const url = 'https://api.jsonbin.io/b/5cab36508b8d1301a25bd8fa/1/'; axios.get(url) .then(response => { for (var i = 0; i < 5; i++) { this.cards.push(response.data.results[i]); } }) .catch(function (error) { console.log(error); }) .then(function () { // always executed }); console.log(this.cards) } }, mounted() { this.scroll(this.card) } }) 命令之后,您将看到在rules文件夹下创建了一个文件。 在该文件中,您必须定义以下规则

make:rule

在您的控制器中,您可以执行以下操作

public function passes($attribute, $value)
{
    return preg_match('/(^[0-9]+$)+/', $value);
}

希望这会有所帮助:)

答案 1 :(得分:0)

regex:pattern

正在验证的字段必须与给定的正则表达式匹配。

注意:使用正则表达式模式时,可能需要在数组中指定规则而不是使用管道定界符,尤其是在正则表达式包含管道字符的情况下。

要澄清:,您将执行以下操作。

$regex_rules = array('test' => array('size:6', 'regex:foo'));

'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i'),

'description'=>'required|regex:/^[A-Za-z \t]*$/i|min:3|unique:courses',

'credits'=>'required|regex:/^\d+(\.\d)?$/'