在JSON中指定正则表达式字符串,在JavaScript和PHP中使用
Specify regex string in JSON, use it in JavaScript and PHP
我的JSON
文件中有这个条目:
{
"rules": [
{
"field": "ingame",
"rules": [
{
"condition": "minLength",
"argument": 1,
"php": false
},
{
"condition": "maxLength",
"argument": 24,
"php": false
},
{
"condition": "zeroRows",
"argument": "SELECT * FROM users WHERE ingame = ?",
"php": true
},
{
"condition": "regexCheck",
"argument": "[a-zA-Z0-9_''('')]{1-24}",
"php": false
}
]
}
]
}
根据在线解析器,它是正确的JSON
。
我对"condition": "regexCheck"
下的特定regex
的意思是:一个由1-24个符号组成的字符串,这些符号要么是a-z
,要么是A-Z
,要么是0-9
,或者是_
,或者是(
或是)
。
我如何在JavaScript:中应用它
function checkRule(condition, argument, value) {
var pass = false;
var errormessage = "";
switch (condition) {
case "regexCheck":
pass = value.match(new RegExp(argument));
if (!pass) {
errormessage = "Not in expected format";
}
break;
}
return {
pass: pass,
errormessage: errormessage
};
}
然而,regex似乎不起作用,当检查RegExp
对象时,我看到以下内容:[a-zA-Z0-9_'(')]{1-24}
。
有人知道它出了什么问题吗
此外,在PHP中,我使用以下内容:
function checkRules($rules, $name, $value) {
$pass = false;
$errormessage = "";
if (file_exists("../rules/{$rules}.json")) {
$rules = json_decode(file_get_contents("../rules/{$rules}.json", true));
foreach ($rules->rules as $fvalue) {
if ($fvalue->field == $name) {
foreach ($fvalue->rules as $ruleset) {
switch ($ruleset->condition) {
case "regexCheck":
$pass = preg_match($ruleset->argument, $value);
if (!$pass) {
$errormessage = "Not in expected format";
}
break;
}
if (!$pass) {
break;
}
}
break;
}
else {
$pass = true;
$errormessage = "";
}
}
}
else {
$pass = false;
$errormessage = "Internal error";
}
return array($pass, $errormessage);
}
不能在量词中使用连字符。您有{1-24}
更改为{1,24}
还要注意,检查RegExp时返回的regex是正确的,因为'
是JSON中的保留转义符。
相关文章:
- PHP Javascript显示/隐藏按钮不工作
- php javascript代码从javascript调用php函数
- 如何在php/javascript中制作定时器和警报
- 带有数据输入的PHP/JavaScript web交互式图谱
- PHP - Javascript integration?
- 从复选框 ajax php javascript 中检索值
- 验证此图像验证码.Jquery PHP & javascript.
- Facebook PHP+JavaScript-在页面加载之前导航时出现异常
- PHP/JavaScript-检测当前打开页面的用户
- Php-Javascript-我如何知道哪些页面是彩色的,哪些是黑白的
- PHP+Javascript解析这两个响应
- 创建php/javascript倒计时计时器时出现问题
- 转换“;2012年7月15日星期日00:00:00 GMT+0700(东南亚标准时间)“;到php/javascript
- 与php/javascript函数调用混淆
- 从下拉框中获取选定的值,并使用来填充文本框php javascript
- 如何使用php+javascript更改HTML表的内容
- Php javascript不显示数据
- PHP/JavaScript MP3播放器,用于采样和销售歌曲
- Integration PHP + Javascript
- Adsense Onclick(php, javascript)