var regex = /[A-Za-z]\d[A-Za-z] ?\d[A-Za-z]\d/;
var match = regex.exec(value);
if (match){
if ((value.indexOf("-") !== -1 || value.indexOf(" ") !== -1) && value.length() == 7) {
return true;
} else if ((value.indexOf("-") == -1 || value.indexOf(" ") == -1) && value.length() == 6) {
return true;
}
} else {
return false;
}
Regex sẽ tìm mẫu A0A 1B1. kiểm tra đúng:Regex hiệu quả đối với chức năng mã bưu điện của Canada
A0A 1B1
A0A1B1
A0A1B1
A0A1B1C < < vấn đề con
vì vậy tôi thêm một kiểm tra cho "-" hoặc "" và sau đó một kiểm tra chiều dài.
Có phương pháp regex hay phương pháp hiệu quả hơn không?
Tôi sẽ chuyển sang nói rằng anh ấy cũng có thể sử dụng cờ 'i' để kiểm tra chữ hoa/chữ thường không cần thiết. – Dave
+1 regex rất gọn gàng. – jurgenreza
Điều đó sẽ cho phép Mã bưu điện của Canada không hợp lệ. Mã bưu điện không bao giờ bắt đầu bằng các ký tự có thể bị nhầm lẫn với các số: I, O, Q, U, W, Z ... Do đó:/^ [ABCEGHJKLMNPRSTVXY] \ d [-]? \ D [A-Za-z] \ d $ /; –