javascript - 解析已知键的字符串正则表达式,但保留分隔符

标签 javascript regex key-value

好吧,我在尝试制作正则表达式时遇到了一些障碍。

本质上,我想要一个像这样的字符串:

error=some=new item user=max dateFrom=2013-01-15T05:00:00.000Z dateTo=2013-01-16T05:00:00.000Z

待解析读取

error=some=new item
user=max
dateFrom=2013-01-15T05:00:00.000Z
ateTo=2013-01-16T05:00:00.000Z

所以我希望它提取已知的关键字,并忽略其他具有 = 的字符串。

我当前的正则表达式如下所示:

(error|user|dateFrom|dateTo|timeFrom|timeTo|hang)\=[\w\s\f\-\:]+(?![(error|user|dateFrom|dateTo|timeFrom|timeTo|hang)\=])

因此,我使用动态使用的已知关键字,以便我可以将它们列为已知关键字。

我该如何编写它来包含此要求?

最佳答案

您可以像这样使用替换:

var input = "error=some=new item user=max dateFrom=2013-01-15T05:00:00.000Z dateTo=2013-01-16T05:00:00.000Z";

var result = input.replace(/\s*\b((?:error|user|dateFrom|dateTo|timeFrom|timeTo|hang)=)/g, "\n$1");
result = result.replace(/^\r?\n/, ""); // remove the first line

结果:

error=some=new item 
user=max 
dateFrom=2013-01-15T05:00:00.000Z 
dateTo=2013-01-16T05:00:00.000Z

关于javascript - 解析已知键的字符串正则表达式,但保留分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882423/

相关文章:

javascript - 如何使用 jQuery 替换文本区域内的属性内容?

java - 抓取 URL 以提取该页面中的所有其他 URL

c# - Dictionary Keys 有字数限制吗?

javascript - jQuery UI DatePicker 显示错误的日期

javascript - bower.json 中的 ~ 和 ^ 有什么区别?

javascript - 如何匹配 "something":"thestring"模式?

javascript - 将键和值映射到 Javascript 中的新键

python - 在 python3 中反转字典中的键和值(值不唯一)

php - 选中复选框时需要更改图像

javascript - 仅当子字符串出现在引号之外而不是 JavaScript 中的引号内时才替换它