PHP正则表达式模式作为字符串到Javascript变量
所以,这可能不像我在花了一个新的小时寻找后所希望的那样直截了当。。。因此,为什么我在浏览了其他人的网页后却写下了自己的问题。它通常会让我想到一个关于PHP到JS正则表达式兼容性或转换的问题,而这不适用于我的问题——据我所知,请随意更正 我的目标是创建一个自定义验证规则的JSON数组,在JS formvalidation插件中使用,该数组在PHP中使用CI作为MVC框架生成服务器端 此自定义验证规则数组当前在PHP控制器中生成,经过JSON编码,传递给视图,然后通过JSON.parse解析为变量,以获得所需的基于对象的结构,而不是字符串;这是最简单的一点,很有效 这是踢球者,我被卡住了;验证规则中的一个参数可以是正则表达式模式。在PHP数组中,它必须保留在引号内,但是当它碰到JS时,它需要从引号中取出,才能成为正则表达式对象?不确定这是否是正确的术语 我研究了如何使用RegExp对象创建一个新的正则表达式;var x=新的RegExpstring,/modifier;例如但问题在于,当您不知道密钥将是什么时,将正则表达式嵌套在JSON数组中 我目前的结构如下: 验证规则的PHP数组,按照插件文档要求的结构:PHP正则表达式模式作为字符串到Javascript变量,javascript,php,arrays,regex,json,Javascript,Php,Arrays,Regex,Json,所以,这可能不像我在花了一个新的小时寻找后所希望的那样直截了当。。。因此,为什么我在浏览了其他人的网页后却写下了自己的问题。它通常会让我想到一个关于PHP到JS正则表达式兼容性或转换的问题,而这不适用于我的问题——据我所知,请随意更正 我的目标是创建一个自定义验证规则的JSON数组,在JS formvalidation插件中使用,该数组在PHP中使用CI作为MVC框架生成服务器端 此自定义验证规则数组当前在PHP控制器中生成,经过JSON编码,传递给视图,然后通过JSON.parse解析为变量,
$formValidationConfig = array(
// Validation rules to be passed to the formvalidation plugin
'name' => array(
// Optional
// Element name as the array key
// Formatting of the array content:
// http://formvalidation.io/settings/#settings-structure
// [key] Validators (necessary wording) => [sub array]
// [key] Validation Rule => [sub array]
// [key] Validation Rule Name => [val] Validation Parameter :: optional pair
// [key] Error Message => [val] Message Content
'validators' => array(
'notEmpty' => array(
'message' => 'The full name is required'
),
'regexp' => array(
'regexp' => '/^[a-zA-Z\\\s]+$/', // Optional
// The triple backslash is necessary due to JS and JSON both parsing the array
'message' => 'The full name can only consist of alphabetical characters'
),
'stringLength' => array(
'max' => 50, // Optional
'message' => 'The full name must be less than 50 characters'
)
)
)
);
// -----
// Further down the page (scroll)
// -----
$page = array(
'formValidationConfig' => json_encode( $formValidationConfig )
);
用于解析数组的Javascript:
var validationRules = JSON.parse( '<?=$formValidationConfig;?>' );
除了正则表达式外,它适用于所有的东西。所有对象和属性设置正确后,bar显然。。。正则表达式
我有一些想法:
以单独的数组发送正则表达式项。一旦它们到达页面,解析它们int RegExp对象,但以某种方式引用PHP数组中预定义的变量名。
循环遍历JSON数组并解析出字符串引号,将正则表达式留在JSON数组中。
请给我灌输一些知识,教我哪里出了问题
提前谢谢 var re=新的正则表达式;?你试过没有打开和关闭“/”吗?@RonDadon,效果很好!非常感谢。我不敢相信这件事这么简单。。。然而,似乎总是这样!哈哈
Object
name: Object
validators: Object
notEmpty: Object
message: "The full name is required"
regexp: Object
message: "The full name can only consist of alphabetical characters"
regexp: "/^[a-zA-Z\s]+$/"
stringLength: Object
max: 50
message: "The full name must be less than 50 characters"