asp classic 替换输出 BBCode 部分中的 <br>
asp classic replace <br> in section of output BBCode
我已经创建了一个演示文件,您可以下载它,还有一个页面可以查看它 运行。我需要做的是,所有的
标签,只需要在区域中删除 (BBCode [code])
更新:
该代码不适用于多个 BBCode 标签。所以如果有
[URL]
[地点]
[乙]
或者其他任何东西,下面的脚本会破坏所有标签。并且不会正确处理页面。
这是演示页面的link。
http://www.cffcs.com/test/EE/Main.asp
这里是 link 下载 .zip 文件。 http://www.cffcs.com/test/EE/Request.zip
如果有人能帮助我,我将不胜感激。
使用了以下代码,但是,我发现它破坏了“[代码”部分未涉及的所有其他内容
这是正在使用的,可以在上面的代码文件中找到。
Function ReplaceChar(strString)
strString = Reggex(strString, "\[code=(.*?)\](.*?)\[\/code\]", "<code class=""""></code>")
ReplaceChar = strString
End Function
Function ProtectSQL(SQLString)
SQLString = SQLString
SQLString = Replace(SQLString, "'", "''") ' replace > with >
SQLString = Replace(SQLString, vblf,"<br>") ' replace vblf with <br /> (This is mainly used for Memo fields.
SQLString = Trim(SQLString)
ProtectSQL = SQLString
End Function
getText = ProtectSQL(request.form("Answers"))
bigString = ReplaceChar(getText)
'grab the left chunk of text starting to the position just after [code
startString = LEFT(bigString, INSTR(bigString, "<code ") + 6)
endString = RIGHT(bigString, LEN(bigString)-INSTR(bigString, "</code>")+1)
midString = REPLACE(bigString, endString, "")
midString = REPLACE(midString, startString, "")
midString = REPLACE(midString, "<br>",vbLf)
bigString = startString & midString & endString
经典ASP,你只需要一个简单的Replace()
。
strString = REPLACE(strString, "<br>", vblf)
如果你只想对字符串的一部分进行替换,它会变得有点复杂:
'grab the left chunk of text starting to the position just after [code
startString = LEFT(bigString, INSTR(bigString, "<code ") + 6)
'grab the right chunk of text starting just before the [/code
endString = RIGHT(bigString, LEN(bigString)-INSTR(bigString, "</code>")+1)
'clear out the beginning and end to just get the part between the code tags
midString = REPLACE(bigString, endString, "")
midString = REPLACE(midString, startString, "")
'replace the breaks
midString = REPLACE(midString, "<br>",vbLf)
'put it all back together
bigString = startString & midString & endString
您可以使用 MID 函数来获取字符串的中间部分,而不是使用替换将 midString 与较大的字符串分开 - 请参阅此处的 MID 文档:http://www.w3schools.com/vbscript/func_mid.asp
为此,您还需要计算中间字符串的长度,使用 INSTR() 和 LEN() 的组合来获取位置:
http://www.w3schools.com/vbscript/func_len.asp
我已经创建了一个演示文件,您可以下载它,还有一个页面可以查看它 运行。我需要做的是,所有的 标签,只需要在区域中删除 (BBCode [code])
更新: 该代码不适用于多个 BBCode 标签。所以如果有
[URL] [地点] [乙]
或者其他任何东西,下面的脚本会破坏所有标签。并且不会正确处理页面。
这是演示页面的link。 http://www.cffcs.com/test/EE/Main.asp
这里是 link 下载 .zip 文件。 http://www.cffcs.com/test/EE/Request.zip
如果有人能帮助我,我将不胜感激。
使用了以下代码,但是,我发现它破坏了“[代码”部分未涉及的所有其他内容 这是正在使用的,可以在上面的代码文件中找到。
Function ReplaceChar(strString)
strString = Reggex(strString, "\[code=(.*?)\](.*?)\[\/code\]", "<code class=""""></code>")
ReplaceChar = strString
End Function
Function ProtectSQL(SQLString)
SQLString = SQLString
SQLString = Replace(SQLString, "'", "''") ' replace > with >
SQLString = Replace(SQLString, vblf,"<br>") ' replace vblf with <br /> (This is mainly used for Memo fields.
SQLString = Trim(SQLString)
ProtectSQL = SQLString
End Function
getText = ProtectSQL(request.form("Answers"))
bigString = ReplaceChar(getText)
'grab the left chunk of text starting to the position just after [code
startString = LEFT(bigString, INSTR(bigString, "<code ") + 6)
endString = RIGHT(bigString, LEN(bigString)-INSTR(bigString, "</code>")+1)
midString = REPLACE(bigString, endString, "")
midString = REPLACE(midString, startString, "")
midString = REPLACE(midString, "<br>",vbLf)
bigString = startString & midString & endString
经典ASP,你只需要一个简单的Replace()
。
strString = REPLACE(strString, "<br>", vblf)
如果你只想对字符串的一部分进行替换,它会变得有点复杂:
'grab the left chunk of text starting to the position just after [code
startString = LEFT(bigString, INSTR(bigString, "<code ") + 6)
'grab the right chunk of text starting just before the [/code
endString = RIGHT(bigString, LEN(bigString)-INSTR(bigString, "</code>")+1)
'clear out the beginning and end to just get the part between the code tags
midString = REPLACE(bigString, endString, "")
midString = REPLACE(midString, startString, "")
'replace the breaks
midString = REPLACE(midString, "<br>",vbLf)
'put it all back together
bigString = startString & midString & endString
您可以使用 MID 函数来获取字符串的中间部分,而不是使用替换将 midString 与较大的字符串分开 - 请参阅此处的 MID 文档:http://www.w3schools.com/vbscript/func_mid.asp 为此,您还需要计算中间字符串的长度,使用 INSTR() 和 LEN() 的组合来获取位置: http://www.w3schools.com/vbscript/func_len.asp