我寫了一個正則運算式來驗證 WooCommerce 中的電話號碼。它適用于所有情況,除非該欄位包含單個“0”字符。
可能是什么錯誤?
那是代碼:
$post_value = $_POST['billing_phone'];
if ( $post_value && ! preg_match( '/^(\ 49)[0-9]{9,}$/', $post_value ) ) {
//error
}
uj5u.com熱心網友回復:
您的正則運算式不匹配0或 490. 所以問題可能是當 POST 引數為 0 時,if 陳述句中的某些內容有所不同。'billing_phone'在 PHPif (int)中,對于 0 以外的任何 int 為 true,對于 0 為 false,也許這就是問題所在?
因此,您可以通過以下方式解決該問題:
if ( ($post_value || $post_value == 0) && ! preg_match( '/^(\ 49)[0-9]{9,}$/', $post_value ) ) {
(免責宣告:我一般對 PHP 不是很熟悉。)
uj5u.com熱心網友回復:
您可以使用僅匹配單個零的替代來撰寫模式。
如果處理后不需要單獨的捕獲組,則 49可以省略它。
^(?:\ 49\d{9,}|0)$
查看正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446441.html
標籤:php 正则表达式 验证 woocommerce 预赛
