在 JavaScript 中的两点之间查找和替换
Find and replace between two points in JavaScript
我目前正在开发一个网络应用程序,我需要根据用户的选择构建一个 URL,用户每个产品只能选择 1 个项目,所以我应该能够创建一个如下所示的 URL,
?集合=法国%20曲线&房间=明亮%20和%20通风&场景=最佳&wall_treatment=墙壁处理 1
例如,如果用户选择不同的wall_treatment
,我需要一些如何搜索我正在生成的字符串,并用新的相关数据替换该部分?
我被谷歌搜索并尝试使用.replace()
但这不起作用,有什么想法吗?
您可以构建一个正则表达式,匹配字符串的任何部分,如下所示:
var urlPart = "wall_treatment";
var reg = new RegExp("([&?]+)" + urlPart + "=[^&]+");
只需将"wall_treatment"
替换为包含字符串/URL部分的任何变量即可。 [^&]+
将任何内容与 URL 中下一次出现的&
匹配。
将其替换为如下:
var yourURL = "?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=Wall Treatment 1";
var new_value = "Wall Treatment 2";
yourURL.replace(reg, "$1" + urlPart + "=" + new_value);
解决了这个问题后,让我建议你应该尝试从对象或数组构建你的 url,而不是替换 url 字符串中的变量:
var myURLSearchObject = {},
addURLSearchPart = function(key, value) {
myURLSearchObject[key] = value;
},
buildURLSearch = function() {
var string = "?";
for (var key in myURLSearchObject) {
if (myURLSearchObject.hasOwnProperty(key)) {
string.length > 1 && (string += '&');
string += key;
string += '=';
string += myURLSearchObject[key];
}
}
return string;
};
现在你可以像这样使用它:
addURLSearchPart('hello', 'hi');
addURLSearchPart('bye', 'goodbye');
buildURLSearch();
您可以像这样替换:
wt="something"; // user entered value
s = '?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=Wall Treatment 1';
s = s.replace(/([?&]wall_treatment=)[^&]*/i, "$1" + wt);
//=> ?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=something
您可以在每次 url new 时构建,而不是替换字符串中的某些内容:
var collection = 'French Curves';
var room = 'Bright and Airy';
var scene = 'best';
var wallTreatment = 'Wall Treatment 1';
newUrl = '?collection=' + collection + '&room=' + room + '&scene=' + scene + '&wall_treatment=' + wallTreatment';
然后有点乌伦编码,一切都应该没问题。如果你的GET
参数是动态的,你也可以在foreach中执行此操作。
尝试:
(?i)(?<=wall_treatment=)[^&]+
构建上面的正则表达式,其中wall_treatment可以是 url 中的任何参数。如果是scene
则正则表达式将捕获best
如果wall_treatment
正则表达式将捕获Wall Treatment 1
。
我希望这有帮助!
你能试试这个吗,
var String ='?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=Wall Treatment 1';
var Urls = String.split('wall_treatment=');
String = String.replace(Urls[1], "YourString");
console.log(String); //output : ?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=YourString
相关文章:
- PaperJS-两点之间的角度
- 铯JS-两点之间的距离
- 查找图像上两点之间的距离,即使缩放图像也是如此
- 如何使用谷歌地图几何库查找两点之间的距离
- 在 JavaScript 中的两点之间查找和替换
- 谷歌地图中两点之间的多条折线
- 在谷歌地理图中绘制两点之间的曲线
- 只需显示两点之间的距离(KM)
- 删除两点之间的所有HTML
- 寻找一种方法在 Three.js 中的球体上的两点之间画一条线
- 如何使用 javascript 选择视口中两点之间的所有内容
- 更改画布线,或两点之间的调整线
- 如何计算两点之间的小时数;HHmm'在Javascript中
- HTML5画布,如何显示两点之间的动画攻击
- 检查两点之间的坐标点
- 如何在拉斐尔画两点之间的线
- 两点之间的距离谷歌地图a是未定义的api v3
- 获取二维数组JavaScript中两点之间的距离
- 在两点之间找到最短的路
- 在JavaScript中获取两点之间的文本