在typescript中将字符串转换为对象?

时间:2017-12-26 06:12:16

标签: angular validation typescript

我正在尝试使用接受字符串和数组的Is-Valid-Glob来验证glob表达式。需要验证的值是从文本字段接收的。问题是如果我们传递一个无效的glob表达式,它会产生错误的结果,因为每个输入都是作为字符串接收的。例如: - 如果用户输入[](无效的glob),则将其作为字符串'[]'分配给模型变量,并在'[]'而不是[]值上进行验证。 有没有办法将字符串变量的值转换为对象变量(只有值不应该是类型)并进行验证?

PS:我正在使用Angular 2。

3 个答案:

答案 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)将字符串转换为对象。