javascript - 跳过字符串的一部分并用正则表达式替换匹配
问题描述
我需要替换字符串的一部分,但我的代码替换了整个字符串,我只想根据键名替换 = 等号之后的文本。我需要正则表达式来跳过关键字 value= 然后替换它等于的值。我有一部分在正则表达式中工作,但它完全匹配。
/(?:value\=)([A-Za-z{}": ',&-=\\]+)$/
name = test
key = value
value = {
"first": 'John',
'Last': 'Doe'
}
value = first = John & last = Doe
var data = "value=first_name=John&last_name=Doe;"
.replace(/^(?:value\=)([A-Za-z{}": ',&-=\\]+)$/g, 'first_name=Homer&last_name=Simspon');
console.log(data);
/*
data = value=first_name=John&last_name=Doe
which should be
value=first_name=Homer&last_name=Simspon
*/
解决方案
您可以使用捕获组、$1、$2 等。我在下面使用了通配符 .* 正则表达式,但您可能会使其更具体到您希望看到的键值对。
var data = "value=first_name=John&last_name=Doe;"
.replace(/(value\=).*(;)/g, '$1first_name=Homer&last_name=Simspon$2');
console.log(data);
/*
data = value=first_name=John&last_name=Doe
which should be
value=first_name=Homer&last_name=Simspon
*/
推荐阅读
- discord - 如何获取用户发送了多少条消息
- eclipse - pom.xml 标记“缺少工件 com.sun:tools:jar:1.8.0”
- java - 嗨,我在部署 service-api 和 service-service 时使用 liferay 7.3.0 这个错误
- go - 使用通道时的问题:所有 goroutine 都处于睡眠状态 - 死锁
- python - 使用python访问yaml中的元素
- python - 弃用警告:不推荐使用或从 'collections' 而不是从 'collections.abc' 导入 ABC,在 3.8 中它将停止工作
- javascript - 在 CountUp.js 完成计数后解决一个 promise
- node.js - react js中的数据表服务器端处理
- php - Textarea 未在表单中发布值
- jquery - 如何为每个动态创建的“搜索结果块”添加弹出窗口