【PHP】价格区间字段验证,如4万-5万

参数值示例:

$str1 = "4万-5万";
$str2 = "4万-5万元";
$str3 = "5万元以内";

 以下是一个PHP示例,用于检查字符串是否满足要求:

function checkString($str) {
    // 检查字符串中是否包含"-"或"以内"
    $containsHyphen = strpos($str, "-") !== false;
    $containsWithin = strpos($str, "以内") !== false;

    // 如果字符串中既不包含"-"也不包含"以内",则返回false
    if (!$containsHyphen && !$containsWithin) {
        throw new Exception('价格区间中既不包含"-"也不包含"以内"');
    }

    // 正则:检查"以内"前面的字符是否为数字或"数字+万"或"数字+万元"或"数字+元"
    $numPattern = "/^\d+(?:\.\d{1,2})?(?:万|万元|元)?$/u";
    // 如果字符串中包含"-",则检查两侧是否为空
    if ($containsHyphen) {
        $parts = explode("-", $str);
        if (empty($parts[0]) || empty($parts[1])) {
            throw new Exception('价格区间检查"-"两侧错误 - 1');
        }

        // 检查"-"两侧的字符
        if (!preg_match($numPattern, $parts[0]) || !preg_match($numPattern, $parts[1])) {
            throw new Exception('价格区间检查"-"两侧错误 - 2');
        }
    }

    // 如果字符串中包含"以内",则检查前面的字符是否为数字或"万",后面是否为空
    if ($containsWithin) {
        $parts = explode("以内", $str);
        if (empty($parts[0]) || !empty($parts[1])) {
            throw new Exception('价格区间检查"以内"错误 - 1');
        }

        // 检查"以内"前面的字符
        if (!preg_match($numPattern, $parts[0])) {
            throw new Exception('价格区间检查"以内"错误 - 2');
        }
    }

    // 检查字符串中是否包含多个"-"或"以内"
    if (substr_count($str, "-") > 1 || substr_count($str, "以内") > 1) {
        throw new Exception('价格区间包含多个"-"或"以内"');
    }

    return true;
}

// 测试示例
$str1 = "4万-5万";
$str2 = "4万以内";
$str3 = "4万-5万以内";
$str4 = "4万-以内";
$str5 = "4万-5万-6万";
$str6 = "4万以内5万";

var_dump(checkString($str1)); // 输出:bool(true)
var_dump(checkString($str2)); // 输出:bool(true)
var_dump(checkString($str3)); // 输出:bool(false)
var_dump(checkString($str4)); // 输出:bool(false)
var_dump(checkString($str5)); // 输出:bool(false)
var_dump(checkString($str6)); // 输出:bool(false)

相关推荐

  1. PHP价格区间字段验证4-5

    2024-01-11 20:40:02       46 阅读
  2. 10日活服务器配置选择,费用价格明细

    2024-01-11 20:40:02       205 阅读
  3. 【SQL】百级最大表如何添加字段

    2024-01-11 20:40:02       27 阅读
  4. PHP】TP5验证规则自定义

    2024-01-11 20:40:02       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 20:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 20:40:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 20:40:02       82 阅读
  4. Python语言-面向对象

    2024-01-11 20:40:02       91 阅读

热门阅读

  1. Linux 基础知识点详细总结

    2024-01-11 20:40:02       52 阅读
  2. C#-sort()利用委托自定义排序

    2024-01-11 20:40:02       60 阅读
  3. R语言【base】——unlink():删除文件和目录

    2024-01-11 20:40:02       55 阅读
  4. 记录学习--校验文件的SHA、MD5

    2024-01-11 20:40:02       57 阅读
  5. Leetcode16-有多少小于当前数字的数字(1365)

    2024-01-11 20:40:02       53 阅读
  6. 【OpenCV学习笔记】- 学习笔记目录

    2024-01-11 20:40:02       62 阅读
  7. 文件分割与合并

    2024-01-11 20:40:02       61 阅读
  8. 力扣_数组25—柱状图中最大的矩形

    2024-01-11 20:40:02       44 阅读
  9. 线程池如何知道一个线程是否执行完成

    2024-01-11 20:40:02       55 阅读