我想验证一种字符串格式,该字符串格式应仅包含同时满足以下条件的数字两者:
如果是整数,则最大位数为5。例如,12345可以,但是123456不能。
如果是带小数(或小数)的数字,则小数点后的最大位数为2。例如,10,23很好,但是10,234不好。
(注意:值使用逗号或点作为小数点。请记住,必须同时满足两个条件。例如123456,12不是很好,因为整数部分大于五位数)
我尝试过:
function kia_display_order_data_in_admin( $order ){ ?>
<div class="order_data_column">
<h4><?php _e( 'Verwendungszweck' ); ?></h4>
<?php
echo '<p><strong>' . __( 'Grund der Spende: ' ) . '</strong>'. get_post_meta( $order->id, '_cloudways_dropdown', true ) . '</p>';?>
</div>
该代码成功验证了条件1,但在条件2失败,例如值3,345通过了意外的验证。
我的正则表达式有什么问题?
答案 0 :(得分:1)
这就是您要尝试的
"^(?:\\d{1,5}(?:[.,]\\d{0,2})?|[.,]\\d{1,2})$"
可读版本
^
(?:
\d{1,5}
(?: [.,] \d{0,2} )?
| [.,] \d{1,2}
)
$
答案 1 :(得分:0)
如果只需要一个reqex,则可以使用Wiktor Stribiewew建议的一个;
您始终可以根据自己的情况将其分为两部分。
^\d{5}$
^\d{5}\.\d{2}$
对于JAVA :
matches can be used for matching the complete string and the following if should suffice
if(num.matches("\\d{5}") ||num.matches("\\d{5}\\.\\d{2}") ) {
}