在javascript文件中使用javascript编写javascript代码
这可能是一个愚蠢的问题,但让我问一下。我想将一个对象或代码段作为字符串分配给一个变量,然后将其作为代码使用在javascript文件中使用javascript编写javascript代码,javascript,Javascript,这可能是一个愚蠢的问题,但让我问一下。我想将一个对象或代码段作为字符串分配给一个变量,然后将其作为代码使用 code_string = "rules:{hotel_name:{required: true, lettersonly: true}}"; var validator = $('#create_hotels').validate({ print code_string; // How will I call code_string here to act as be
code_string = "rules:{hotel_name:{required: true, lettersonly: true}}";
var validator = $('#create_hotels').validate({
print code_string;
// How will I call code_string here to act as below ?
});
// want it working like this
var validator = $('#create_hotels').validate({
rules:{hotel_name:{required: true, lettersonly: true}},
});
只需做一个很小的更改,就可以将字符串解析为javascript对象 更改是将{和}包含在字符串中,但也将字符串格式化为有效的json,其中包括在中包装键 现在您可以使用JSON.parse:
简化,但应该很容易扩展 像这样的怎么样
const isValid = {
name: str => str.length > 3,
age: int => {
const MIN_AGE = 18;
const MAX_AGE = 65;
if(isNaN(int)){
return false;
}
return age >= MIN_AGE && age <= MAX_AGE;
}
}
const john = { name: 'John', age: 21 };
const sarah = { name: '', age: 99 };
isValid['name'](john.name); // true
isValid['age'](john.age); // true
isValid['name'](sarah.name); // false
isValid['age'](sarah.age); // false
在创建字符串时遵循json的语法。。。然后在需要的地方将其转换为json为什么不使用json.stringify和json.parse?您并不是在传递代码,而是在传递信息。为什么不直接存储为对象呢?const rules={hotel_name:{required:true,lettersonly:true}}}….$'create_hotels.validaterulesI更新了我的问题,请给我一个工作示例。这个答案让我困惑-这和问题有什么关系?!我有submitHandler和error元素,以及它是如何工作的them@mohsin自发布此答案后,您已更改了问题。您最好将其还原,以免使此答案和其他答案无效,并提出另一个问题。但简而言之,提交处理程序的字符串版本将出现问题。不是不可能,但可以提出一个安全问题。我回复我的问题,但如果你能给我看一个submitHandler的例子,我会的great@mohsin您可以将字符串传递给函数的构造函数并执行它。这真是个坏主意。它是伪装的。请看:实际上我有很多表单,我正在考虑多表单验证解决方案
var validator = $('#create_hotels').validate(JSON.parse(code_string));
const isValid = {
name: str => str.length > 3,
age: int => {
const MIN_AGE = 18;
const MAX_AGE = 65;
if(isNaN(int)){
return false;
}
return age >= MIN_AGE && age <= MAX_AGE;
}
}
const john = { name: 'John', age: 21 };
const sarah = { name: '', age: 99 };
isValid['name'](john.name); // true
isValid['age'](john.age); // true
isValid['name'](sarah.name); // false
isValid['age'](sarah.age); // false
code_string = '{"rules":{"hotel_name":{"required": true, "lettersonly": true}}}';
var validator = $('#create_hotels').validate({
print JSON.parse(code_string);
});