当前位置: 首页 > news >正文

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

参数值示例:

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

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

function checkString($str) {// 检查字符串中是否包含"-"或"以内"$containsHyphen = strpos($str, "-") !== false;$containsWithin = strpos($str, "以内") !== false;// 如果字符串中既不包含"-"也不包含"以内",则返回falseif (!$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)

http://www.lryc.cn/news/279096.html

相关文章:

  • 安徽省暨合肥市“希望工程·梦想计划”小盖茨机器人捐赠启动仪式举行
  • Kafka消息存储
  • 【Vue3+Ts项目】硅谷甄选 — 用户管理+角色管理+菜单管理+首页
  • node连接Mysql失败
  • 运用AI搭建中间服务层(四)
  • [C#]winform部署yolov5-onnx模型
  • 基于SpringBoot的洗衣店管理系统
  • AMEYA360:广和通RedCap模组FG131FG132系列
  • RGB,RGB-D,单目,双目,sterro相机,实例相机介绍
  • 【linux】history命令显示时间的例子
  • Nginx负载均衡以及常用的7层协议和4层协议的介绍
  • 【机器学习300问】4、机器学习到底在学习什么?
  • 设计一个简易版的数据库路由
  • 接口自动化测试面试题
  • Tampermonkey油猴插件-各大网盘批量分享,解放双手-上
  • 【DB2】installSAM执行后会重启这件事
  • RTSP网络视频协议
  • Python 网络数据采集(四):Selenium 自动化
  • 实现秒杀功能设计
  • 每天刷两道题——第十四天
  • 快速掌握Postman实现接口测试
  • jmeter--3.使用提取器进行接口关联
  • 移动通信系统关键技术多址接入MIMO学习(8)
  • WorkPlus AI助理为企业提供智能客服的机器人解决方案
  • python类装饰器编写单体类
  • Java并发Condition 详解
  • 如何使用CentOS系统中的Apache服务器提供静态HTTP服务
  • Python入门0基础学习笔记
  • python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
  • 【回顾2023,展望2024】砥砺前行