2013-09-23 39 views
8

Vì vậy, tôi có các quy tắc sau đây trong mô hình của tôi:Laravel validation regex, phá vỡ trong quan điểm

public static $rules = array(
    'name'   => 'required|alpha_dash|unique:subsidiaries', 
    'internal_number' => 'required|alpha_dash|unique:subsidiaries', 
    'expedition_rate' => array('required', 'regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'), 
    'hundred_kg_rate' => array('regex:/^[0-9]{1,5}(\.?)[0-9]{1,2}$/'), 
    'handling'  => array('regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'), 
    'insurance'  => 'required|numeric', 
); 

Nhưng, đối với một số lý do, khi regex được áp dụng trong thẻ pattern thuộc tính trong html ... nó nghỉ giải lao!

Kết quả:

<input required="true" pattern="^[0-9]{" class="form-control" ....> 
           _________ 
           \ 
            => This right here should be 
           ^[0-9]{1,3}(\.?)[0-9]{1,2}$ 
+0

Mặc dù vậy, bạn sẽ xuất ra đâu? Bạn đang sử dụng 'Cựu', cơ hội nào? – rmobis

+0

@Raphael_ Trên thực tế, tôi đang sử dụng 'Cựu' ... các quy tắc được truyền từ bộ điều khiển đến chế độ xem – Alex

+0

Sau đó, đây thực sự là vấn đề với Cựu, không phải Laravel. – rmobis

Trả lời

0

Cố gắng thoát khỏi dấu ngoặc nhọn ... Tôi đặt cược PHP được mong đợi để phân tích một biến bên trong, như thế này:

$var = 'something'; 
echo 'The value is {$var}.'; 
// Outputs: 
// The value is something. 

Contrast này với:

$var = 'something'; 
echo 'The value is \{$var\}.'; 
// Outputs: 
// The value is $var. 

Phần gây nhầm lẫn cho tôi, là đây là những dấu nháy đơn, và do đó điều này sẽ không xảy ra. Có lẽ một điều Laravel?

+0

Làm cách nào để thoát khỏi dấu ngoặc nhọn trong cú pháp regex? Điều này là mới đối với tôi – Alex

+0

Tăng gấp đôi tất cả các dấu gạch chéo ngược. –

+0

Xin lỗi, tôi nghĩ tôi đã hiểu nhầm câu hỏi của bạn. Để thoát khỏi dấu ngoặc nhọn, bạn chỉ có thể thực hiện '\ {... \}'. Khi nó hiển thị, nó không nên có dấu gạch chéo ngược đó. –

2

Hãy thử sử dụng như thế này.

array(
    'field' => 'regex:[a-z]' 
); 

Hy vọng điều này sẽ hữu ích.