在变量中查找文本

时间:2018-08-15 18:40:05

标签: jquery variables

我有一个包含一堆东西的变量:

\"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,\

1 个答案:

答案 0 :(得分:1)

如评论中所述,处理此问题的最佳方法是使用

var results = JSON.parse(yourString) 然后获取网址 results.urlresults[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/

并在此处使用正则表达式: Regular expression visualization

Debuggex Demo