|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题html标志 只写给老手的,各先辈就别来看我搬门弄斧了。hehe
常常看见有老手来问相似如许的话题,其实关于正则表达式我也不太懂。
昨世界午看了一下微软的正则表达式,少量了解。
明天也写个函数,只当理论,有误人的地方请指导。
上面是一个实例:
原文是如许的:"<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4"
<Script Language="VBScript">Function RegExpTest(patrn, strng,rewho) Dim Re,Match,Matches,RetStr RetStr=strng Set Re = New RegExp Re.Pattern = patrn Re.IgnoreCase = True Re.Global = True Set Matches = Re.Execute(RetStr) For Each Match in Matches Restr = ReStr & Match.Value& ","RetStr=replace(RetStr,match.value,rewho) Next Restr=replace(Restr,"<","<")Restr=replace(Restr,">",">") RegExpTest = "这是原文:"&strng&"<br>这是被交换失落的:"&ReStr&"<br>这就是剩下的了:"&RetstrEnd Functiondocument.write RegExpTest("(<[^{><}]*>)", "<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4","")</Script>
[Ctrl+A 全体选择 提醒:你可先修正局部代码,再按运转]
关头就在于<[^{><}]*>这个正则表达式,固然很复杂,但我仍是我凭我浅浅了解,给人人说一下。
HTML标志是以小于号“<”入手下手,以大于号“>”,停止的。
所以这个正则表达式中的一切大于小于号都代表HTML标志,不是特别字符。
“[”“]”方括号表达式中所包括的字符只婚配该括号表达式在正则表达式中
所处地位的一个单字符,我复杂的了解为,它是婚配某地位的单个字符。
“^”标志是特别符号,在方括号外面,前面跟的是列表字符,所以它的意思是
一切不在列表或局限中的字符。按我的了解他就相当于咱们法式中的“NOT”
所以方括号中的^{><}的意思就是,这个单字符非大于或非小于号。
外面的大括号去失落其实也一样。大括号也是特别字符
“*”也是特别符号 婚配后面的子表达式零次或屡次,
总的了解起来就是,在一个以小于号“”入手下手,并以大于号“”停止的标志,而且外面可以有多个的非大于或非小于号字符。如许也就婚配了HTML标志了。
呵呵,空话一堆
<%
Function RegExpTest(patrn,strng,rewho)
Dim re,Match,Matches
RetStr=strng
Set re = New RegExp //创立正则表达式
re.Pattern = patrn //创立正则表达式形式
re.IgnoreCase = True //是不是不辨别巨细写,你可以封闭,由于HTML标志是不辨别巨细写的。
re.Global = True //是不是全局可用
Set Matches = re.Execute(strng) //履行搜刮
For Each Match in Matches //遍历婚配纠合
RetStr=replace(RetStr,match.value,rewho) //找到区配字符,并入手下手交换
Next
RegExpTest = RetStr
End Function
content="<a href= test.asp >test1</a>test2 <strong>test3</strong> test4" //这是原文
pattern="<[^{><}]*>" //正则表达式形式,这里也能够了解成将要被交换失落的字符
Restr="" //将要交换成甚么字符
response.write RegExpTest(pattern,content,restr)
%>
如今就还有一个成绩。"<[^><]*>" 既然只婚配在一个以小于号“”入手下手,
并以大于号“”停止的标志,而且外面可以有多个的非大于或非小于号字符。
那末如许的<a href=<b>>就只被婚配一次了,由于<a ***>里还有HTML标志<b>所
以,不克不及婚配<a ***>,只能婚配<b>,那如许剩下的就是<a href=>
等于说其实不会把一切的HTML都婚配失落。。。
我这里也有一个傻瓜的举措。就是履行RegExpTest函数两次
<%
Function RegExpTest(patrn,strng,rewho)
Dim re,Match,Matches
RetStr=strng
Set re = New RegExp //创立正则表达式
re.Pattern = patrn //创立正则表达式形式
re.IgnoreCase = True //是不是不辨别巨细写可以封闭,由于HTML标志不辨别巨细写
re.Global = True //是不是全局可用
Set Matches = re.Execute(strng) //履行搜刮
For Each Match in Matches //遍历婚配纠合
RetStr=replace(RetStr,match.value,rewho) //找到区配字符,并入手下手交换
Next
RegExpTest = RetStr
End Function
content="<a href=<b>>test<>" //这是原文
pattern="<[^{><}]*>" //正则表达式形式,这里也能够了解成将要被交换失落的字符
Restr="" //将要交换成甚么字符
Stest=RegExpTest(pattern,content,restr)
response.write RegExpTest(pattern,STest,restr)
%>
如许是可以,可是如果原文大一点的话必定会影响速度的,高手们是不是有更好的举措呀。
别的这个函数还有别的一个用途。信任人人都晓得GOOGLE搜刮出来的关头字都是加了
白色的了,一样,用这个函数也能够做到的。
好比说我想把"<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4中的es都酿成白色,
那这个函数就如许挪用。RegExpTest("es",原文,"<font color=red>es</font
<P>>"
上面测试一下吧。
<script language="VBS">Function RegExpTest(patrn,strng,rewho) Dim re,Match,Matches RetStr=strng Set re = New RegExp //创立正则表达式 re.Pattern = patrn //创立正则表达式形式 re.IgnoreCase = True //是不是不辨别巨细写,你可以封闭,由于HTML标志是不辨别巨细写的。 re.Global = True //是不是全局可用 Set Matches = re.Execute(strng) //履行搜刮 For Each Match in Matches //遍历婚配纠合RetStr=replace(RetStr,match.value,rewho) //找到区配字符,并入手下手交换 Next RegExpTest = RetStrEnd Functioncontent="<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4" //这是原文pattern="es" //正则表达式形式,这里也能够了解成将要被交换失落的字符Restr="<font color=red>es</font>" //将要交换成甚么字符document.write RegExpTest(pattern,content,restr) </script>
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的东西可是什么都要收钱的啊! |
|