下面的代码是将font标签添加到每个字符,但它不起作用
Function AddFontTag (counter)
Do While Len (counter) < 7
newStr = newStr & "<font>" & Left (counter, i) & "</font>"
i = i + 1
Loop
AddFontTag = newStr
End Function因为我不精通经典的asp,比如变量作用域,语法。有人知道上面的代码有什么问题吗?
谢谢
发布于 2013-01-04 12:45:59
您的do..while循环是一个无限循环-假设counter是一个字符串变量,它的长度永远不会改变,所以如果在进入函数时Len(counter)小于7,它将始终小于7,因此您的函数永远不会退出。
您的newStr变量是未定义的-这在VBScript中是有效的,但这是非常糟糕的做法,并且它是无数错误的来源。它是一个全局变量还是应该是一个局部变量?(它看起来像是本地的。)
发布于 2013-01-04 17:17:27
我不确定7个字符的限制如何适用,但对于一般的方法,以下内容将满足您对任何长度字符串的需要:
function AddFontTag(byval str)
AddFontTag = Empty
do while len(str) <> 0
' get next character
dim c: c = left(str, 1)
' reduce original string
str = right(str, len(str) - 1)
' build up output string
AddFontTag = AddFontTag & "<font>" & c & "</font>"
loop
end function示例
dim test: test = AddFontTag("a test")
Response.Write test会给你带来
a test
如果您只想将其应用于长度小于7的字符串,则可以添加
if len(str) > 6 then
exit function
end if在while循环之前或
str = left(str, 6)如果您只想将它应用于任意长度字符串的前6个字符
发布于 2013-01-05 02:17:26
您的代码正在循环,没有退出循环的条件。试试这个。希望能有所帮助。
Function AddFontTag (counter)
dim i,newStr,max
max=7
Do While Len (counter) < max
newStr = newStr & "<font>" & Left (counter, i) & "-" & "</font>"
i = i + 1
if i = max-1 then exit Do
Loop
AddFontTag = newStr
End Function
'to check the results
response.write AddFontTag ("params")你会得到<font>-</font><font>p-</font><font>pa-</font><font>par-</font><font>para-</font><font>param-</font>
https://stackoverflow.com/questions/14150565
复制相似问题