javascript正则表达式获取fckeditor的图片地址

首先声明我用的fckeditor的版本是2.5.1,其次还要说我的正则表达式是刚刚学的,可能代码还有些问题,需要优化,希望看出问题的各位能不吝赐教,谢谢。上面很罗嗦,不过还是要说。
终于要开始正题了,在fckeditor中获取图片地址,要分n种情况,
  1. 1,纯html标签;
  2. 2,word复制过来的数据;
  3. 2.1 在ie中使用;
  4. 2.2 在firefox种使用;
先从fckeditor中得到html,
  1. var oEditor = FCKeditorAPI.GetInstance(contentid) ;
  2. var fckStr = oEditor.GetHTML(false);//获得源代码

对于1的正则表达式是
  1. var reg1_html = /(?:]*src[/ ]*=[/ ]*(?:['"]?)(/S[^'"/ ]+)(?:['"]?/s[^>]*[>]{1}))/gi;
  2. var match = null;
  3. while((match = reg1_html.exec(fckStr)) != null){
  4. //找到每个匹配进行操作。
  5. }
说明:如果match不是null,那match[0] (是零,不是O)就是匹配的整个img标签,match[1]就是src的值;这里用了捕获组和非捕获组,所以match[1]才是src的值,写博客的时候才想起来,这里面有疏漏,并没有使用分组命名,这完全是受了java的影响,因为开始的时候我在java里面使用了,而java并不支持分组命名(据说java7支持分组命名),导致我后来竟然没有加上。

对于2的正则当然要就是:

ie情况下要用到三个正则表达式,不知道有没有更简单的方法;
  1. var reg1_html = /(?:]*src[/ ]*=[/ ]*(?:['"]?)(/S[^'"/ ]+)(?:['"]?/s[^>]*[>]{1}))/gi;
  2. var reg2_word = /(?:]*/s*o/:href=(?:['"]?)(/S[^'"/ ]+)(?:['"]?[^>]+>{1})(?:<//v/:imagedata>))/gi;
  3. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值