php - PHP preg_match 模式是主题的子字符串
问题描述
我想测试输入是否为 1234567(7 位)类型。我用
preg_match($pattern,$subject);
在哪里
$pattern = '/^[0-9]{7}$/';
但是,对于主题为的情况,我得到 1
L-8987765
这是我不想要的。我该如何克服呢?
function isDocid($documento_id)
{
$subject = pg_escape_literal($documento_id);
$pattern1 = '/^[0-9]{7}$/';
if (preg_match($pattern1, $subject) === 1)
{
return 1;
}
else
{
return 0;
}}
$test_carta = isDocid('L-8987765');
echo('<p> ja existe docid '. $test_carta .'</p>');
我期待:ja存在docid 0
解决方案
从文档(斜体是我的):
pg_escape_literal()
转义用于查询 PostgreSQL 数据库的文字。它返回 PostgreSQL 格式的转义文字。在 data 前后添加引号。pg_escape_literal()
换句话说,由于引号中的方式,您永远不会从正则表达式检查中获得积极的结果。在准备好将数据插入数据库查询之前,不要使用数据库转义。或者,更好的是,不要在数据库查询中插入 PHP 变量——而是使用准备好的语句。
function isDocid($documento_id)
{
return (preg_match('/^[0-9]{7}$/', $documento_id) === 1) ? 1 : 0;
}
$test_carta = isDocid('L-8987765');
echo('<p> ja existe docid '. $test_carta .'</p>');
推荐阅读
- android - 自定义视图库 Android 的架构
- json - 按最近的时间戳对数组中的对象数组进行排序,然后使用 jq 按每个数组的第一个对象的时间戳对外部数组进行排序
- vba - 查询 Oracle 时受影响的记录返回 -1
- django-rest-framework - 权限取决于字段 django rest 框架
- flutter - 如何在颤动中添加不太和底部的应用栏
- jquery - 使用jQuery从输入模糊的下拉列表中选择项目
- python - 使用不同长度的 DNA 字符串为 keras 准备数据
- arrays - Excel 数组和小型 VBA 循环与不带数组的大型 VBA 循环的性能
- python-3.x - 如何使用 PyTorch 从本地目录导入 MNIST 数据集
- wpf - datagride Mvvm 从外部字段更新和插入