Làm cách nào để tôi chỉ cho phép các số trong php?

Đôi khi các tình huống phát sinh [giả sử id người dùng, mật khẩu hoặc mã] khi người dùng phải điền vào một hoặc nhiều trường các ký tự bảng chữ cái [A-Z hoặc a-z] và số [0-9] trong biểu mẫu HTML. Bạn có thể viết tập lệnh xác thực biểu mẫu JavaScript để kiểm tra xem [các] trường bắt buộc trong biểu mẫu HTML chỉ chứa các chữ cái và số

Chức năng Javascript để kiểm tra xem đầu vào của trường chỉ chứa các chữ cái và số

// Function to check letters and numbers
function alphanumeric[inputtxt]
{
 var letterNumber = /^[0-9a-zA-Z]+$/;
 if[[inputtxt.value.match[letterNumber]] 
  {
   return true;
  }
else
  { 
   alert["message"]; 
   return false; 
  }
  }
  
  

Để có được một chuỗi chỉ chứa các chữ cái và số [i. e. a-z, A-Z hoặc 0-9], chúng tôi sử dụng biểu thức chính quy /^[0-9a-zA-Z]+$/ chỉ cho phép các chữ cái và số. Tiếp theo, phương thức match[] của đối tượng chuỗi được sử dụng để khớp biểu thức chính quy đã nói với giá trị đầu vào. Đây là tài liệu web đầy đủ. +

Sơ đồ


Mã HTML





JavaScript form validation - checking all letters and numbers



Enter your Registration Number and Submit

  • *Enter numbers and alphabets only.
  •  
  •  

mã Javascript

function alphanumeric[inputtxt]
{ 
var letters = /^[0-9a-zA-Z]+$/;
if[inputtxt.value.match[letters]]
{
alert['Your registration number have accepted : you can try another'];
document.form1.text1.focus[];
return true;
}
else
{
alert['Please input alphanumeric characters only'];
return false;
}
}

Mã CSS

li {list-style-type: none;
font-size: 16pt;
}
.mail {
margin: auto;
padding-top: 10px;
padding-bottom: 10px;
width: 400px;
background : #D8F1F8;
border: 1px soild silver;
}
.mail h2 {
margin-left: 38px;
}
input {
font-size: 20pt;
}
input:focus, textarea:focus{
background-color: lightyellow;
}
input submit {
font-size: 12pt;
}
.rq {
color: #FF0000;
font-size: 10pt;
}

Xem ví dụ trên trình duyệt

Thực hành ví dụ trực tuyến

Xem Bút chữ-số-trường-1 của w3resource [@w3resource] trên CodePen


file_download Tải xuống mã xác thực từ đây

Xác thực JavaScript khác

  • Kiểm tra không trống
  • Kiểm tra tất cả các chữ cái
  • Kiểm tra tất cả các số
  • Kiểm tra số nổi
  • Kiểm tra chữ và số
  • Kiểm tra độ dài chuỗi
  • Xác thực email
  • Xác thực ngày
  • Mẫu đơn đăng ký
  • Không có điện thoại. Thẩm định
  • thẻ tín dụng số. Thẩm định
  • Xác thực mật khẩu
  • Xác thực địa chỉ IP

Trước. JavaScript. Xác thực biểu mẫu HTML - kiểm tra số dấu phẩy động
Tiếp theo. JavaScript. Biểu mẫu HTML - giới hạn độ dài

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



JavaScript. Lời khuyên trong ngày

Nhận xét mã của bạn thường xuyên

Nhận xét là một cách tuyệt vời để tóm tắt mục đích của một đoạn mã, tiết kiệm thời gian cho các nhà phát triển đồng nghiệp của bạn để tự xác định mục đích đó. Nó cũng cho phép họ phát hiện ra những lỗi có thể xảy ra nếu mã không hoàn thành nhiệm vụ mà nó được nhận xét là hoàn thành. Nói chung, tốt nhất là để lại một nhận xét về mọi chức năng. Nếu bạn không chắc liệu bạn có nên để lại nhận xét hay không, hãy cứ làm điều đó. Nó luôn có thể bị xóa sau nếu nó quá lộn xộn

Tuần trước David Walsh đã đăng về việc xác thực các giá trị số và chữ số bằng PHP trên blog tuyệt vời của anh ấy. Tôi đã đăng nhận xét của riêng mình về bài đăng cụ thể của anh ấy nhưng chúng không bao giờ xuất hiện nên tôi quyết định đăng phản hồi tốt hơn tại đây

Điểm quan trọng trong bài đăng của David là anh ấy cần có khả năng xác thực giữa việc tìm kiếm một giá trị số [có thể là số dấu phẩy động và do đó chứa dấu thập phân] và liệu một số chỉ chứa các chữ số

Giải pháp của anh ấy là thế này

/* numeric, decimal passes */
function validate_numeric[$variable]
{
    return is_numeric[$variable];
}

/* digits only, no dots */
function is_digits[$element]
{
    return !preg_match ["/[^0-9]/", $element];
}

Như tôi đã lưu ý trong nhận xét của mình [không được xuất bản], tôi không chắc tại sao bạn lại bọc is_numeric[] vào hàm validate_numeric[] của anh ấy khi tất cả những gì nó làm là gọi is_numeric[]. Tại sao không chỉ gọi is_numeric[] thay thế?

Mặt khác, hàm is_digits[] thực sự khá tốt. Ban đầu tôi nghĩ có thể có một số vấn đề với nó nhưng nó hoạt động tốt nhưng có một giải pháp thay thế đơn giản hơn

is_integer – không tốt

Trong nhận xét của mình, tôi đã gợi ý rằng anh ấy có thể sử dụng hàm is_integer[] miễn là giá trị được chấp nhận nằm trong phạm vi kiểu số nguyên và các giá trị dương và âm đều được chấp nhận. Tất nhiên, giá trị chỉ có chữ số có thể không nằm trong phạm vi số nguyên, ví dụ: is_integer[12345678901234567890] sẽ trả về false nhưng chỉ chứa số

Vấn đề với giả định ban đầu của tôi là trong dữ liệu PHP được gửi từ biểu mẫu *does* chỉ chứa các chữ số và *is* trong phạm vi số nguyên sẽ vẫn trả về false từ is_integer[] vì nó sẽ được coi là một chuỗi. Ví dụ



Và sau đó làm điều này khi biểu mẫu được gửi

echo [int]is_integer[[int]$_POST['foo']];

sẽ in 0, nghĩa là sai. D'oh. Ngoài ra, một số nguyên có thể chứa - nếu nó là một giá trị âm thì -123 sẽ trả về true mặc dù nó chứa nhiều hơn chỉ các chữ số

ctype_digit – không tốt hơn nhiều

Một giải pháp thay thế khác là hàm ctype_digit[] giúp tiết kiệm việc phải loay hoay với các biểu thức thông thường. ctype_digit kiểm tra xem tất cả các ký tự trong giá trị được truyền vào có phải là số không. Chỉ các số từ 0 đến 9 là hợp lệ và không thành vấn đề nếu giá trị được nhập dưới dạng chuỗi, đó là điều sẽ xảy ra từ một bài đăng biểu mẫu

Tuy nhiên, ctype_digit nó yêu cầu đầu vào là một chuỗi và sẽ trả về false nếu giá trị được truyền vào là một số nguyên…

Ví dụ

var_dump[ctype_digit[123]];
var_dump[ctype_digit['123']];
var_dump[ctype_digit[12345678901234567890]];
var_dump[ctype_digit['12345678901234567890']];

Những màn hình này

________số 8

Bạn sẽ có thể sử dụng [string], strval[], v.v. để truyền giá trị dưới dạng chuỗi trước rồi chuyển giá trị đó tới ctype_digit nhưng tôi nhận thấy nếu số quá lớn thì nó vẫn không hoạt động

Ví dụ: bốn cái đầu tiên bên dưới trả về true, nhưng cái cuối cùng trả về false

ctype_digit[strval[12345678901]];
ctype_digit[strval[123456789012]];
ctype_digit[strval[1234567890123]];
ctype_digit[strval[12345678901234]];
ctype_digit[strval[123456789012345]];

Sử dụng biểu thức chính quy

Vì vậy, suy nghĩ ban đầu của tôi là chỉ sử dụng is_integer[] và một người khác đã đề xuất sử dụng ctype_digit nhưng hóa ra sử dụng biểu thức chính quy với preg_match lại là giải pháp tốt nhất. Chỉ cần nhớ khi sử dụng các biểu thức chính quy với PHP để sử dụng các hàm preg* chứ không phải các hàm ereg* vì các hàm sau không được dùng trong PHP 6

Làm cách nào để chỉ cho phép các số trong hộp văn bản trong PHP?

Câu trả lời là, chúng tôi sử dụng một hàm trong PHP gọi là hàm is_numeric . Hàm is_numeric được sử dụng để kiểm tra xem [các] ký tự được nhập. Nếu tất cả các ký tự là số, nó sẽ trả về giá trị thực. Nếu tất cả các ký tự không phải là số, nó sẽ trả về giá trị sai hoặc không đúng.

Làm cách nào để đặt xác thực cho số trong PHP?

Mã bên dưới xác nhận rằng trường sẽ chỉ chứa một giá trị số. Ví dụ - Số điện thoại di động. .
$mobileno = $_POST ["Mobile_no"];
nếu [. preg_match ["/^[0-9]*$/", $mobileno] ]{
$ErrMsg = "Chỉ cho phép giá trị số. “;
tiếng vang $ErrMsg;
} khác {
tiếng vang $mobileno;

Làm cách nào để chỉ cho phép bảng chữ cái trong trường nhập liệu trong PHP?

Cân nhắc sử dụng các hàm PHP ctype_alpha & ctype_digit trong xác thực biểu mẫu của bạn . ctype_alpha chỉ trả về true nếu xác thực bao gồm các chữ cái và sẽ trả về false nếu sử dụng ký tự số hoặc ký tự đặc biệt.

Làm cách nào để xác thực đầu vào số nguyên trong PHP?

PHP có hàm filter_var[] để xác thực các biến. .
25 [Số nguyên] sẽ không bị thay đổi
"25" [chuỗi] sẽ được chuyển thành 25 [Số nguyên]
25. 11 [Float] sẽ trả về false vì chúng không phải là số nguyên
đúng [Boolean] sẽ trả về 1 [Số nguyên]
false [Boolean] sẽ trả về false [Boolean]

Chủ Đề