Hướng dẫn php only allow letters and numbers - php chỉ cho phép các chữ cái và số

1. Sử dụng ctype_alnum sẵn có của PHP

Bạn không cần phải sử dụng Regex cho việc này, PHP có chức năng sẵn có ctype_alnum sẽ làm điều này cho bạn và thực hiện nhanh hơn:

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

2. Ngoài ra, sử dụng regex

Nếu bạn rất muốn sử dụng Regex, bạn có một vài tùy chọn.

Firstly:

preg_match('/^[\w]+$/', $string);

preg_match('/^[\w]+$/', $string);
0 bao gồm nhiều hơn chữ và số (nó bao gồm dấu gạch dưới), nhưng bao gồm tất cả
preg_match('/^[\w]+$/', $string);
1.

Alternatively:

/^[a-zA-Z\d]+$/

Hoặc thậm chí chỉ:

/^[^\W_]+$/

Hôm nay, tôi muốn chỉ cho bạn một cách, làm thế nào bạn có thể kiểm tra một chuỗi cho một số chữ cái, số hoặc ký tự nhất định.

Ví dụ, một khu vực của ứng dụng sẽ kiểm tra tên người dùng có thể chỉ chứa một số ký tự nhất định.

Đầu tiên, chúng tôi muốn xem xét mã sau:

if (!preg_match("#^[a-zA-Z0-9]+$#", $text)) {
   echo 'String also contains other characters.';	
} else {
   echo 'String only contains numbers and letters.';
}

Ở đây chúng tôi muốn kiểm tra xem chuỗi $ văn bản chỉ bao gồm các chữ cái (A đến Z và A đến Z) và số (chữ số 0 đến 9). Đối với điều này, chúng tôi sử dụng một biểu thức thông thường và preg_match. Là một tham số đầu tiên, chúng tôi vượt qua biểu thức chính quy, trong đó biểu thức chính quy thực được viết giữa " # và #".

Biểu tượng ^ đại diện cho sự khởi đầu của chuỗi. $ Là viết tắt của cuối chuỗi. Ở giữa, tất cả các ký tự được cho phép, được xác định trong lớp ký tự giữa các dấu ngoặc vuông. Các nhân vật trong lớp này có thể xảy ra thường xuyên như họ muốn. Điều này được biểu thị bằng dấu + ở cuối. Trong lớp ký tự, chúng tôi đã xác định các chữ cái chữ thường A-Z, chữ cái trên A-Z và các chữ số 0-9.

Cũng kiểm tra các ký tự khác như các điểm nhấn

Đương nhiên, các điểm nhấn không được bao gồm trong lớp nhân vật A-Z hoặc A-Z. Nếu chúng ta muốn cho phép những nhân vật này, chúng ta phải viết riêng chúng:

if (!preg_match("#^[a-zA-Z0-9äöüÄÖÜ]+$#", $text)) {
   echo 'String also contains other characters';	
} else {
   echo 'String only contains letters and digits.';
}

Vì vậy, chúng tôi có thể thêm bất kỳ nhân vật nào khác vào lớp nhân vật của chúng tôi để kiểm tra các ký tự này.

Kiểm tra các chữ cái nói chung

Cho đến nay, chúng tôi đã xác định các bộ ký tự bằng cách viết từng chữ cái & nbsp; rõ ràng vào lớp nhân vật của chúng tôi. Cuối cùng, không thể viết tất cả các chữ cái có thể tưởng tượng được vào biểu thức thông thường của chúng tôi. Ví dụ sau đây cho thấy cách chúng ta có thể xử lý tình huống này. è, ø, é or ă? Finally, it is not possible to write all conceivable letters to our regular expression. The following example shows a way of how we can handle this situation.

$text = "abcABCäöüÄÖÜßéèâø";
 
if (preg_match("#^\p{L}+$#u", $text)) {
   echo 'String contains arbitrary letters.'; 
}

L là viết tắt của một chữ cái tùy ý, \ p cho một ký tự có thuộc tính được xác định trong dấu ngoặc xoăn phía sau và U là viết tắt của Unicode. Vì vậy, biểu thức chính quy này đang kiểm tra tùy ý, & nbsp; tùy ý & nbsp; các ký tự unicode lặp lại. Regex này có thể được sử dụng kể từ Php phiên bản 5.1.0.

Sử dụng L, chúng tôi đang cho phép viết thường cũng như chữ viết hoa. Nếu bạn chỉ muốn kiểm tra các chữ cái chữ thường hoặc chữ hoa, bạn có thể sử dụng LL (chữ cái chữ thường) hoặc LU (chữ cái chữ hoa) thay vì L.

Cho phép không gian

Thêm ký tự vào bộ thậm chí áp dụng cho không gian. Trong ví dụ này, chúng tôi đã thêm một không gian vào lớp ký tự:

if (!preg_match("#^[a-zA-Z0-9äöüÄÖÜ ]+$#", $text)) {
   echo 'String also contains other characters.';	
} else {
   echo 'String only contains letters, digits and spaces.';
}

Với điều này, cũng có các chuỗi chứa chỗ trống được cho phép.

Điểm, giá đỡ và các ký tự đặc biệt khác

Một số nhân vật có một ý nghĩa đặc biệt trong một biểu thức chính quy. Chúng bao gồm, ví dụ, điểm hoặc dấu ngoặc. Nếu chúng ta muốn đưa các nhân vật như vậy vào lớp nhân vật của mình, chúng ta phải viết điều này:

if (!preg_match("#^[a-zA-Z0-9äöüÄÖÜ \.\]]+$#", $text)) {
   echo 'String also contains other characters.';	
}

Với \ chúng ta có thể thoát khỏi các ký tự tương ứng. Điều đó có nghĩa là: với \ chúng tôi nói rằng nhân vật tiếp theo nên được hiểu là một nhân vật và không phải là một hướng dẫn thông thường. Trong ví dụ, với điều này, chúng tôi thêm một điểm và một khung vuông vào lớp nhân vật của chúng tôi. lớp nhân vật.

Nhưng điều gì sẽ xảy ra nếu chúng ta cũng muốn thêm \ làm nhân vật vào lớp của chúng ta? Nó đơn giản. Ngoài ra, ký tự \ có thể được thoát ra bằng việc viết một \ trước mặt nó. Đơn giản chỉ cần viết \\.

CType-Functions

Chắc chắn, thường được sử dụng các lớp ký tự, bạn có thể dễ dàng sử dụng các hàm CTYPE của PHP. & NBSP; Thêm về chủ đề này trong hướng dẫn chuỗi CTYPE của tôi. Ưu điểm của các hàm CTYPE là chúng tôi không cần biểu thức chính quy và chúng có hiệu suất tốt hơn.

Làm thế nào để tôi chỉ cho phép các chữ cái trong PHP?

preg_match ('/^[a-za-z]+$/', $ fname)) sẽ kiểm tra rằng $ fname bao gồm một hoặc nhiều chữ cái ASCII và không có gì khác. would test that $fname consists of one or more Ascii letters and nothing else.

Làm cách nào để kiểm tra xem một chuỗi chỉ chứa các chữ cái trong PHP?

PHP |ctype_alpha () (kiểm tra giá trị bảng chữ cái) hàm ctype_alpha () trong PHP được sử dụng để kiểm tra tất cả các ký tự của một chuỗi đã cho là bảng chữ cái hay không.Nếu tất cả các ký tự là bảng chữ cái thì hãy trả về đúng nếu không trả về sai.ctype_alpha() (Checks for alphabetic value) A ctype_alpha() function in PHP used to check all characters of a given string are alphabetic or not. If all characters are alphabetic then return True otherwise return False.

Việc sử dụng preg_match trong PHP là gì?

PHP |hàm preg_match ().Hàm này tìm kiếm chuỗi cho mẫu, trả về đúng nếu mẫu tồn tại, nếu không thì trả về sai.Thông thường tìm kiếm bắt đầu từ đầu chuỗi chủ đề.Độ lệch tham số tùy chọn được sử dụng để chỉ định vị trí từ nơi bắt đầu tìm kiếm.searches string for pattern, returns true if pattern exists, otherwise returns false. Usually search starts from beginning of subject string. The optional parameter offset is used to specify the position from where to start the search.

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa cả chữ cái và số trong javascript không?

Phương thức kiểm tra regExp () Để kiểm tra xem một chuỗi chỉ chứa các chữ cái và số trong javascript, hãy gọi phương thức test () trên regex này: /^[a-za-z0-9]*$ /.Nếu chuỗi chỉ chứa các chữ cái và số, phương thức này sẽ trả về đúng.Nếu không, nó trả về sai./^[A-Za-z0-9]*$/ . If the string contains only letters and numbers, this method returns true . Otherwise, it returns false .