使用Javascript的通配符替换来更改字符串内的width属性

bobbyrne01

我正在尝试使用.replace('width=".*"', 'width="100"'),因为width可能是原始版本中的任何内容string但是目前,这并没有改变任何东西。

https://jsfiddle.net/bobbyrne01/8p404z5t/

html

<div id="1"></div><br/>
<div id="2"></div>

javascript

var fullURL = '<iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fi.imgur.com%2F…key=2aa3c4d5f3de4f5b9120b660ad850dc9&amp;type=video%2Fmp4&amp;schema=imgur" width="406" height="720" scrolling="no" frameborder="0" allowfullscreen&gt;&lt;/iframe>';

document.getElementById('1').textContent = fullURL;

var moddedURL = fullURL.replace('width=".*"', 'width="100"');
document.getElementById('2').textContent = moddedURL;

结果 ..

<iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fi.imgur.com%2F…key=2aa3c4d5f3de4f5b9120b660ad850dc9&amp;type=video%2Fmp4&amp;schema=imgur" width="406" height="720" scrolling="no" frameborder="0" allowfullscreen&gt;&lt;/iframe>

<iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fi.imgur.com%2F…key=2aa3c4d5f3de4f5b9120b660ad850dc9&amp;type=video%2Fmp4&amp;schema=imgur" width="406" height="720" scrolling="no" frameborder="0" allowfullscreen&gt;&lt;/iframe>
四人

如果需要使用通配符,则需要使用正则表达式,例如

var moddedURL = fullURL.replace(/width=".*?"/, 'width="100"');

在这里,我们使用/width=".*?"/,这是一个正则表达式,它表示匹配模式的任何字符串,width="后跟出现零次或多次的任何字符,直到我们看到第一个"

注意: .*实际上是贪婪的。如果?之后不使用,它将匹配字符串中的所有内容,直到last为止"这就是为什么我们通过使用显式使它变得非贪婪,?并且在"跟随它的第一次出现时它将停止匹配的原因。


实际上,您知道这只会是数字。所以你可以像这样严格地匹配它

var moddedURL = fullURL.replace(/width="\d*"/, 'width="100"');

现在,它将匹配零个或多个数字,而不是任何字符。现在,我们不使用?修饰符,因为当它找到一个不是数字的字符时,RegEx引擎将停止匹配。因此,这里我们不必担心贪心匹配,除非您的字符串的数字周围有空格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章