jquery - 在变量中查找文本
问题描述
我有一个包含一堆这样的东西的变量:
\"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,\
解决方案
如评论中所述,处理此问题的最佳方法是使用
var results = JSON.parse(yourString)
然后获取网址
results.url
或results[url]
但是,如果您的数据不能采用 JSON 格式,您也可以使用正则表达式
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/
并在这里玩正则表达式:
推荐阅读
- image-processing - 如何用 C 描述算法
- json - 如何在单个列表视图中加载多个列表视图?
- java - 如何对单个事务多次调用@Transactional 方法
- tensorflow - 如何使用 TextLineDataset 将文本写入文件
- java - Netlogo Api 控制器 - 获取表格视图
- java - 使用延迟加载面板时检票口无限重新加载页面
- wikidata - 从 OpenRefine 中的记录(而不是行)创建 wikidata 项目?
- c# - 使用 C# 禁用交换邮箱
- javascript - 使用 Dart 和 JS 互操作访问本地 module.exports
- azure - 链接 Azure devops 存储库和板