如何在php中编写用于html5表单数字输入验证的正则表达式模式?
我有一个表单,其中有许多表单字段是动态生成的,我正试图通过下面的代码将数字输入字段限制为最小值和最大值,这在firefox中不起作用如何在php中编写用于html5表单数字输入验证的正则表达式模式?,php,regex,html,Php,Regex,Html,我有一个表单,其中有许多表单字段是动态生成的,我正试图通过下面的代码将数字输入字段限制为最小值和最大值,这在firefox中不起作用 $products=getAllProducts();//an array of product objects echo '<form method="POST" action="">'; for($i=0;$i<(count($products));$i++){ echo '<label>'
$products=getAllProducts();//an array of product objects
echo '<form method="POST" action="">';
for($i=0;$i<(count($products));$i++){
echo '<label>'.$products[$i].getName().'</label>';
echo '<input type="number" pattern="\d*" min="1" max="'.$products[$i].getAvailableQty().'" name="'.$products[$i].getId().'"></input>';
}
echo '<input id="cartButton" type="submit" value="Submit" formaction="cart.php" />';
echo '</form>';
$products=getAllProducts()//产品对象的数组
回声';
对于($i=0;$i),可以使用以下函数获取正则表达式
function getInputValidationRegex($qty){
$qtyCopy=$qty;
$regexpArr=array();
$noOfDigits=strlen((String)$qty);
for($i=1;$i<=$noOfDigits;$i++){
if($i<$noOfDigits){
$str='';
if($i==1)
$str.='[1-9]';
else
$str.='[0-9]{1,'.($i-1).'}';
$regexpArr[]=$str;
}
if($i==$noOfDigits){
$str='';
for($k=1;$k<=$i;$k++){
$lastDigit=$qtyCopy%10;
$qtyCopy=floor($qtyCopy/10);
if($k==$i){
$str2='[1-'.$lastDigit.']'.$str;
$str=$str2;
}
else{
$str2='[0-'.$lastDigit.']'.$str;
$str=$str2;
}
}
$regexpArr[]=$str;
}
}
return implode("|",$regexpArr);
}
函数getInputValidationRegex($qty){
$qtyCopy=$qty;
$regexpArr=array();
$noOfDigits=strlen((字符串)$qty);
对于($i=1;$iSorry,如果我有误解。如果您只是试图确保用户输入的值不高于可用数量,则在这种情况下不需要正则表达式。只需在提交表单后验证输入的数量,或使用javascript。我希望即使java脚本关闭,也能在客户端验证它!生成的HTML看起来像什么?根据最新版本的支持。根据$products[$i].getName()
,$products[$i].getAvailableQty()
,$products[$i].getId()
…例如相机键盘
$products=getAllProducts();//an array of product objects
echo '<form method="POST" action="">';
for($i=0;$i<(count($products));$i++){
echo '<label>'.$products[$i].getName().'</label>';
echo '<input type="number" pattern="'.getInputValidationRegex($products[$i].getAvailableQty()).'" name="'.$products[$i].getId().'"></input>';
}
echo '<input id="cartButton" type="submit" value="Submit" formaction="cart.php" />';
echo '</form>';