我有多个iframe标签,前面和后面都有字符串。我只想在第一个iframe标签后添加一个字符串。
输入:
aaaaa
<iframe src="anything"></iframe>
bbbb
<iframe src="anything"></iframe>
cccc
<iframe src="anything"></iframe>
输出:
aaaaa
<iframe src="anything"></iframe>
**String Added**
bbbb
<iframe src="anything"></iframe>
cccc
<iframe src="anything"></iframe>
感谢
答案 0 :(得分:0)
您没有发布语言,因此我会在Javascript中为您提供答案,您可以根据自己选择的语言进行调整。
正则表达式:
(.*?<\/iframe>)(.*)
修改:
dot matches all
使用Javascript:
str = str.replace(/(.*?<\/iframe>)(.*)/m, '$1' + "** String Added **" + '$2');
在这里测试:http://jsfiddle.net/9LE2S/
var str = 'aaaaa\
<iframe src="anything"></iframe>\
bbbb\
<iframe src="anything"></iframe>\
cccc\
<iframe src="anything"></iframe>';
str = str.replace(/(.*?<\/iframe>)(.*)/m, '$1' + "** String Added **" + '$2');
alert(str);
请注意,javascript并不是最好的,因为它处理多行字符串的方式,但如果你从dom直接得到元素,你可能不会遇到这个问题。这个正则表达式应该在任何风格中都有效。一定要检查修改器的用途是什么&#39; dot匹配换行符&#39; - 在这种情况下,它是m
,正如你在正则表达式尾随斜杠后看到的那样。
说明:
(
- 捕获
.*
- 一切都达到了
?
- 第一个
<\/iframe>
- <i/frame>
的实例
)
- 结束捕获
(
- 捕获
.*
- 其他一切
)
- 结束捕获
然后返回您的捕获组并在它们之间放置一些东西。
答案 1 :(得分:0)
var dom
中的:
$dom
使用javascript替换函数:
aaaaa
<iframe src="anything"></iframe>
bbbb
<iframe src="anything"></iframe>
cccc
<iframe src="anything"></iframe>
使用php:
var input = '\nString Added\n';
dom.replace(/<\/iframe>[^\w](\w+)/ ,input + '$1');
<强>输出:强>
$input = '\nString Added\n';
preg_replace(/<\/iframe>[^\w](\w+)/ ,$input . '$1',$dom);
它的作用:
aaaaa
<iframe src="anything"></iframe>
String Added
bbbb
<iframe src="anything"></iframe>
cccc
<iframe src="anything"></iframe>
=搜索第一个结束帧标记。<\/iframe>
=向前搜索,直到找到单词字符。[^\w]
=捕获整个单词并将其存储在$ 1中。答案 2 :(得分:0)
这是一个简单的JQuery解决方案:
$('iframe').first().after('\n**String Added**\n');