Javascript Regex找到一个字符串的实例并替换它后面的字符串
Javascript Regex find instance of one string and replace the string that comes after it
我正在做一个项目,该项目将允许用户轻松更改API函数调用中的值。
api的值如下所示:FIRST_NAME=John&LAST_NAME=Doe&CUSTOMER_ID=284139&WHATEVER=XXXX
可以有任意数量的具有值的字段。每个字段都有不同的名称。
说我想把姓氏改成约翰逊。我也可以把身份证改成别的。用户可以选择要更改的值的字段。这让我觉得我需要一个新的RegExp对象。
我有字段名和变量中的新值,比如
var field = LAST_NAME (gotten from getElementById.value of a select option)
var value = Johnson (pulled from the value the user choose)
我正在寻找一个正则表达式,它将能够进入并找到字段名称,然后替换值。
我曾经使用过perl,并且正在思考类似于这个的东西
newApiCall = ApiCal.replace(new RegExp(/(.*)(&field=)(.*)&/), $3, value);
这将把所有的东西放在字段前的$1,&field=转换为$2,然后$3将是我要替换的值。希望3美元能被新的价值所取代。
有什么想法如何在javascript中做到这一点吗?
谢谢!
使用使用变量生成的动态正则表达式
var input = 'FIRST_NAME=John&LAST_NAME=Doe&CUSTOMER_ID=284139'; // your API string
var field = 'LAST_NAME'; // could be any alphanumeric value
var newValue = 'Heisenberg'; // if you are a fan of Breaking Bad ;)
var regex = new RegExp(field+'=([^&]*)'); // combines 'field' with the regex
var output = input.replace(regex, field + '=' + newValue); // does the actual replacement part
console.log(output); // check your browser's console after running this
了解更多:RegExp-JavaScript | MDN
"FIRST_NAME=John&LAST_NAME=Doe&CUSTOMER_ID=284139".replace(/((^|&)LAST_NAME=)[^&]*/, "$1" + encodeURIComponent("Johnson"))
//"FIRST_NAME=John&LAST_NAME=Johnson&CUSTOMER_ID=284139"
似乎你需要这样的东西:
var data = "FIRST_NAME=John&LAST_NAME=Doe&CUSTOMER_ID=284139";
var key = "FIRST_NAME";
data.replace(RegExp("((^|&)" + encodeURIComponent(key).replace(/'.'+'*'''/'[']'(')'?/g, "''$1") + "=)[^&]*"), "$1" + encodeURIComponent("Johnson"))
// "FIRST_NAME=Johnson&LAST_NAME=Doe&CUSTOMER_ID=284139"
我在节点(javascript)中执行了以下操作
var a = "FIRST_NAME=John&LAST_NAME=Doe&CUSTOMER_ID=284139";
var field = "LAST_NAME";
var value = "Johnson";
var re = new RegExp("(" + field + "=)([A-Za-z]*)([&'s]*)");
a.replace(re, '$1'+ value + '$3');
'FIRST_NAME=John&LAST_NAME=Johnson&CUSTOMER_ID=284139'
相关文章:
- 删除数组Javascript中字符串的所有实例
- 如何通过JS在不干扰其标记的情况下更改HTML文档中字符串的所有实例
- 是否有将基于字符串的JSON转换为Mongoose Schema对象实例的本地功能
- JavaScript:计算字符串中特定整数的实例
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 正则表达式来更改字符串中的所有实例
- javascript正则表达式,将多个实例替换为多行字符串中的单个实例
- 如何更改字符串/符号的所有实例的样式
- 替换字符串中YouTube/Vimeo iframe的所有实例
- 字符串是对象 String() 的实例吗?
- 我们如何在 javascript 对象中使用字符串名称存储创建 Backbone 视图的实例
- 如何匹配并返回一个字符串的多个实例,其中单个撇号可以包含在任何索引中
- Jquery:在一个字符串中查找所有实例模式,提示用户替换模式的所有实例,然后进行替换
- Ember.js:使用模型实例的路由获取模型实例的 url 字符串
- 如何在 JavaScript 中替换字符串中“+”的多个实例
- 查找字符串中单词所有实例的位置,在控制台中得到不需要的重复
- 正则表达式 Express 将反斜杠 的每个实例替换为字符串中的 u
- 按第三个实例拆分字符串
- Javascript向字符串实例添加方法
- 无法从JSON字符串实例化类型的值;没有单字符串构造函数/工厂方法