我正在尝试使用接受字符串和数组的Is-Valid-Glob来验证glob表达式。需要验证的值是从文本字段接收的。问题是如果我们传递一个无效的glob表达式,它会产生错误的结果,因为每个输入都是作为字符串接收的。例如: - 如果用户输入[](无效的glob),则将其作为字符串'[]'分配给模型变量,并在'[]'而不是[]值上进行验证。 有没有办法将字符串变量的值转换为对象变量(只有值不应该是类型)并进行验证?
PS:我正在使用Angular 2。
答案 0 :(得分:1)
尝试使用eval,它用于将字符串转换为等效对象,例如
var a="[]";
console.log(a);// this will print "[]" as a string.
console.log(eval(a));// this will print an array object. With 0 length array object.
答案 1 :(得分:1)
您可以使用JSON.parse将字符串转换为对象:
var x = require('is-valid-glob');
var y = '[]';//'foo/*.js' any user provided string
// this will check if the user has provided an array object if so it
//will do a json.parse to remove the '' and then verify the string for a glob.
x(y[1] !== '['?y:JSON.parse(y));
答案 2 :(得分:0)
我们可以使用Object.assign({},object)将字符串转换为对象。