Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于避免特殊字符不应用于laravel中的文本字段的正则表达式验证规则_Php_Regex_Laravel_Validation_Laravel 6 - Fatal编程技术网

Php 用于避免特殊字符不应用于laravel中的文本字段的正则表达式验证规则

Php 用于避免特殊字符不应用于laravel中的文本字段的正则表达式验证规则,php,regex,laravel,validation,laravel-6,Php,Regex,Laravel,Validation,Laravel 6,在我的laravel应用程序中,我有一个注册新域名的表格。在这种形式下,我试图验证文本字段(subDomainName),以避免使用特殊字符。但是除了输入字段的正则表达式外,其他所有RUE都正常工作 我的表格代码如下: <form id="w1" action="{{ route('app.save') }}" method="post"> @csrf <input typ

在我的laravel应用程序中,我有一个注册新域名的表格。在这种形式下,我试图验证文本字段(subDomainName),以避免使用特殊字符。但是除了输入字段的正则表达式外,其他所有RUE都正常工作

我的表格代码如下:

<form id="w1" action="{{ route('app.save') }}" method="post">
                        @csrf

                            <input type="text" id="app-subdomainname" class="form-control @error('subDomainName') is-invalid @enderror" name="subDomainName" placeholder="{{ __('sentence.Sub Domain Name') }}" value="{{ old('subDomainName') }}"  aria-required="true">

                            @error('subDomainName')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                         <br>
                            <select id="app-subdomainsuffix" class="form-control @error('subDomainSuffix') is-invalid @enderror" name="subDomainSuffix" aria-required="true">
                                <option value="">- {{ __('sentence.Select domains') }} -</option>
                                <option value="TEST.SITE">TEST.SITE</option>
                            </select>

                            @error('subDomainSuffix')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror

                        <br>

                        <select id="app-packagetype" class="form-control @error('packageType') is-invalid @enderror" name="packageType" aria-required="true">
                            <option value="">- {{ __('sentence.Select package type') }} -</option>
                            @foreach($packages as $package)
                            <option value="{{$package->id}}">{{$package->name}}</option>
                                @endforeach
                        </select>
                        @error('packageType')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                        <br>
                            <select id="app-payment" class="form-control @error('paymentoption') is-invalid @enderror" name="paymentoption" aria-required="true">
                            <option value="">- {{ __('sentence.Select Payment Option') }} -</option>
                            </select>
                            @error('paymentoption')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror

                        <br>

                            <select id="app-themeid" class="form-control @error('themeid') is-invalid @enderror" name="themeid" aria-required="true">
                                <option value="">- {{ __('sentence.Select theme') }} -</option>
                                <option value="default">default</option>
                            </select>
                            @error('themeid')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                        <br>
                            <select id="app-lang" class="form-control @error('lang') is-invalid @enderror" name="lang" aria-required="true">
                                <option value="">- {{ __('sentence.Select Language') }} -</option>
                                <option value="en">English</option>
                                <option value="fr">French</option>
                            </select>
                            @error('lang')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                        <br>

                        <div class="form-group">
                        <input type="hidden" id="domain" class="form-control" name="domain" >
                            <button type="submit" class="btn btn-default subscribe px-5">{{ __('sentence.Save') }}</button>
                        </div>

                    </form>
$this->validate($request, [
            'subDomainName' => 'required','regex:/(^[A-Za-z0-9 ]+$)+/',
            'subDomainSuffix' => 'required',
            'lang' => 'required',
            'themeid' => 'required',
            'paymentoption' => 'required',
            'packageType' =>'required',
            'domain' => 'unique:apps',

        ]);

除正则表达式外,所有验证都正常工作。…

如果要在单个字段上使用多个验证规则,则应将其放在一个字符串中,并用管道分隔,或者将其放在一个数组中。试试这个:

$this->validate($request, [
            'subDomainName' => [
                'required',
                'regex:/^[A-Za-z0-9 ]+$/'
            ],
            'subDomainSuffix' => 'required',
            'lang' => 'required',
            'themeid' => 'required',
            'paymentoption' => 'required',
            'packageType' =>'required',
            'domain' => 'unique:apps',

        ]);

我还缩短了您的正则表达式字符串。

如果您希望在单个字段上使用多个验证规则,您应该将其放在一个字符串中,并用管道隔开,或者将其放在一个数组中。试试这个:

$this->validate($request, [
            'subDomainName' => [
                'required',
                'regex:/^[A-Za-z0-9 ]+$/'
            ],
            'subDomainSuffix' => 'required',
            'lang' => 'required',
            'themeid' => 'required',
            'paymentoption' => 'required',
            'packageType' =>'required',
            'domain' => 'unique:apps',

        ]);

我还缩短了您的正则表达式字符串。

从laravel 7开始,文档建议使用数组形式的正则表达式规则,就像您在答案中使用的那样,而不是使用pipe。从laravel 7开始,文档建议使用数组形式的正则表达式规则,就像您在答案中使用的那样,而不是使用pipe