簡體   English   中英

不使用正則表達式的 PHP 驗證表單

[英]PHP Validation form without using a regex

我使用 HTML 表單,然后將其發送到我的 php 腳本,在那里我應該檢查來自 html 表單的值是否為十進制。 如果沒有,php 應該使用帶有紅色字體顏色的 echo 打印它,如果使用標准黑色字體是正確的..

首先,我不能使用正則表達式來檢查它是否正式有效。 有什么線索嗎?

有幾種方法可以實現:

<?php
$values = [
    '1',
    '1.1',
    '.11',
    'foo'
];

foreach( $values as $value ){
    if( $value > floor($value) ){
        echo '<p>is decimal</p>';
    }else{
        echo '<p style="color:red">not decimal</p>';
    }
}

echo '<hr>';

foreach( $values as $value ){
    if( is_numeric($value) && (1 === substr_count($value, '.')) ){
        echo '<p>is decimal</p>';
    }else{
        echo '<p style="color:red">not decimal</p>';
    }
}

第一種方法只是將值與自身的floor()版本進行比較。

或者,檢查值是否為is_numeric()然后檢查字符串是否有小數。

編輯:按照@ArtisticPhoenix 的建議,將第二種方法從substr()更改為substr_count()因為可能存在 >= 兩位小數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM