我有一个包含一堆东西的变量:
\"message\":\"BUY ONE, GET ONE 30% OFF!\",\"messages\":[],\"status\":\"success\",\"success\":true,\"type\":null,\"url\":\"/content/modal/blah\"}],\"proposition65\":null,\
我如何查看该变量的内部并创建一个等于/content/modal/blah
的新变量
这将一直在变化,因此有所作为
\"success\":true,\"type\":null,\"url\":\" then slices off and grabs whats next and then slices off \"}],\"proposition65\":null,\
答案 0 :(得分:1)
如评论中所述,处理此问题的最佳方法是使用
var results = JSON.parse(yourString)
然后获取网址
results.url
或results[url]
但是,如果您无法使用JSON格式的数据,也可以使用regex
var str = '\"message\":\"BUY ONE, GET ONE 30% OFF!\",\"messages\":[],\"status\":\"success\",\"success\":true,\"type\":null,\"url\":\"/content/modal/blah\"}],\"proposition65\":null,'
var regex = str.match(/url\":\"(.*(?=\"}))/);
// regex will return an array, the url will be in the groupe 1 as groupe 0 is just the string url\":\"
console.log(regex[1])
我不是正则表达式的专家,但这是我制作的正则表达式的工作方式
url\":\" // this gets the string url\":\"
(.*(?=\"})) // here we capture a group with () then match any characters with .* which are followed by \"}) with (?=\"})
这将返回一个包含两个匹配组的数组,一个包含url\":\"
,另一个包含所需的字符串,因此您可以通过array[1]
您可以在此处查看工作代码 https://jsfiddle.net/3s61ory2/7/
并在此处使用正则表达式: