我正在尝试使用Is-Valid-Glob来验证一个glob表达式,它接受字符串和数组。需要验证的值是从文本字段中接收到的。问题在于,如果我们传递一个无效的glob表达式,它会产生错误的结果,因为每个输入都被视为字符串。例如:如果用户输入[](无效的glob),它将被分配给模型变量作为字符串'[]',并且对'[]'而不是[]值进行验证。
有没有办法将字符串变量的值转换为对象变量(仅应该更改类型)并进行验证?
PS:我正在使用Angular 2。
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));
尝试使用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.