首先声明我用的fckeditor的版本是2.5.1,其次还要说我的正则表达式是刚刚学的,可能代码还有些问题,需要优化,希望看出问题的各位能不吝赐教,谢谢。上面很罗嗦,不过还是要说。
终于要开始正题了,在fckeditor中获取图片地址,要分n种情况,
对于1的正则表达式是
对于2的正则当然要就是:
ie情况下要用到三个正则表达式,不知道有没有更简单的方法;
在firefox下直接按第一种情况就可以了。
大家应该都懂了,如果对正则表达式还不熟悉,可以看看:
http://open4y.blogspot.com/2009/05/blog-post.html
http://open4y.blogspot.com/2009/05/30.html
终于要开始正题了,在fckeditor中获取图片地址,要分n种情况,
- 1,纯html标签;
- 2,word复制过来的数据;
- 2.1 在ie中使用;
- 2.2 在firefox种使用;
- var oEditor = FCKeditorAPI.GetInstance(contentid) ;
- var fckStr = oEditor.GetHTML(false);//获得源代码
对于1的正则表达式是
- var reg1_html = /(?:]*src[/ ]*=[/ ]*(?:['"]?)(/S[^'"/ ]+)(?:['"]?/s[^>]*[>]{1}))/gi;
- var match = null;
- while((match = reg1_html.exec(fckStr)) != null){
- //找到每个匹配进行操作。
- }
对于2的正则当然要就是:
ie情况下要用到三个正则表达式,不知道有没有更简单的方法;
- var reg1_html = /(?:]*src[/ ]*=[/ ]*(?:['"]?)(/S[^'"/ ]+)(?:['"]?/s[^>]*[>]{1}))/gi;
- var reg2_word = /(?:]*/s*o/:href=(?:['"]?)(/S[^'"/ ]+)(?:['"]?[^>]+>{1})(?:<//v/:imagedata>))/gi;
- var reg2_word2 = /(?:]*src=(?:['"]?)(/S[^'"/ ]+)(?:['"]?[^>]+)(?:(?:(?://>){1})|(?:[>]{1})))/gi;
在firefox下直接按第一种情况就可以了。
大家应该都懂了,如果对正则表达式还不熟悉,可以看看:
http://open4y.blogspot.com/2009/05/blog-post.html
http://open4y.blogspot.com/2009/05/30.html