在我的应用程序中,用户可以在输入字段中添加版本号,假设他最初添加了一个类似于1.0.1的版本号,并且他必须在下次输入更高的版本号,我如何验证它在PHP中。版本号的输入字符串的正则表达式
不同类型的版本号
1.0
1.0.1
1.01
它可以任意组合
谁能帮助我在这里?
在我的应用程序中,用户可以在输入字段中添加版本号,假设他最初添加了一个类似于1.0.1的版本号,并且他必须在下次输入更高的版本号,我如何验证它在PHP中。版本号的输入字符串的正则表达式
不同类型的版本号
1.0
1.0.1
1.01
它可以任意组合
谁能帮助我在这里?
你可以试试这个。
$version="1.0.1.1";
$versionnew="1.0.1.0";
//explode the version to be able to compare each and every part of the version
$versionArray = explode(".",$version);
$versionnewArray = explode(".",$versionnew);
//the maximum depth of comparison
$limit = min(count($versionArray),count($versionnewArray));
for($i=0;$i<$limit;$i++){
if($versionArray[$i] == $versionnewArray[$i]){
continue;
}else if($versionArray[$i] > $versionnewArray[$i]){
echo $versionnew . " should be newer than " . $version;
}else echo $versionnew . " is newer than " . $version;
}
适用于我,谢谢+1 –
这可以帮助你得到持续
$newVersion= "1.2"; //get a string reference to your version here
$oldVersion = "1.3";
$piecesNew = explode(".", $newVersion); //This will give you an array existing of [1,2]
$piecesOld = explode(".", $oldVersion); //This will give you an array existing of [1,3]
//Do some checking here for each number
是的,这将解决我的问题在一个扩展,但如果版本号是像1.0.1或1.0.0.1或1,等等...我需要一个通用的方式来处理它。 –
为此,您需要一些if else语句。首先,您可以检查两个数组是否具有相同的长度。如果这样比较它们,如果没有比较它们,并且如果它们相等,则必须设置新件的最后位置 –
你是说你想验证新版本号输入是否比旧版本更高? – rccoros
将版本保留为主版本和修订版...并从所有 – user1844933
中选择最大值是我想验证新版本号输入是否高于旧版本号。 –