这是我转换为 JavaScript 对象的字符串。
{"text" : "Must consist of alphabetical characters and spaces only", regexp:"/^[a-z\\s]+$/i"}
我需要regexp
来使用它进行验证,但由于双引号
和\s
转义序列,它不起作用。
要使其正常工作,正则表达式的值必须为{“text”:“必须仅包含字母字符和空格”,正则表达式:/^[a-z\s]+$/i}
。
我还使用了这个new RegExp(object.regexp)
以及我能想到的任何其他方式,但根本没有运气。
感谢任何帮助!
最佳答案
在将其放入 new RegExp
构造函数之前,尝试split
-ing 取出所需的部分:
var regexVariable = new RegExp(object.regexp.split("/")[1]);
这将 trim 掉正则表达式“边界”的字符串表示形式以及“i”标志,只留下正则表达式的“内容”。
将结果推送到控制台会产生以下正则表达式:/^[a-z\s]+$/
编辑:
不确定您是否想从对象中的值“读取”不区分大小写,但是,如果您这样做,您可以进一步扩展 split
的使用以获得自动包含的任何标志:
var aRegexParts = object.regexp.split("/");
var regexVariable = new RegExp(aRegexParts[1], aRegexParts[2]);
在控制台中记录该结果会产生我发布的第一个正则表达式,但添加了“i”标志:/^[a-z\s]+$/i
关于javascript - 如何将字符串从 PHP 转换为 javascript 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28587219/