用不同的参数替换图像源字符串的后部

时间:2017-03-06 11:13:28

标签: javascript jquery string replace

我有一个图像(实际上是一个web服务图),在更改用户选择的参数时,必须更改边界框并更新图像。

如果我替换整个图片代码,它会正常工作:

document.getElementById("dropzone1").innerHTML = "<img style='margin-top: 0' 
  src='http://neowms.sci.gsfc.nasa.gov/wms/wms?
  SERVICE=WMS&VERSION=1.1.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&
  LAYERS=MOD13A2_E_NDVI&SRS=EPSG:4326&STYLES=&WIDTH=500&HEIGHT=400&
  BBOX=10.163726806640625,49.10217838413516,10.240631103515625,49.14172346635712'>";

但我只想更换后部,BBOX数据用变量&#34;范围&#34;:

  str.replace("10.163726806640625,49.10217838413516,10.240631103515625,49.14172346635712", extent")

有一种简单的方法吗?小数位数会有所不同。

感谢任何提示!

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式,例如

yourString.replace(/BBOX=[\d\.,]+/, 'BBOX=' + yourNewBBox);

正则表达式将搜索由BBOX =&#39;组成的子串。其次是数字,点和逗号的任意组合。

答案 1 :(得分:0)

最好你的图像有一个id来访问它,或者我们可以通过它在父级中的索引来访问元素(图像)。例如,如果您的图片是其父{0} {<1}}的第一个元素:

div id="dropzone1"

答案 2 :(得分:0)

这是一个简单的解决方案。

var n = str.lastIndexOf('BBOX');
var o=str.lastIndexOf('>');
var result = str.substring(n + 1,o-1);

然后你可以用extent替换结果。

str.replace(result, extent);