您的位置:程序门 -> web 开发 -> asp



请教各位朋友一些关于符号的问题~~


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教各位朋友一些关于符号的问题~~
发表于:2008-01-21 17:49:40 楼主
看书   看到一处地方   有点不明白   特来请教~
在asp编写代码的过程中都知道双引号中的代表的是字符串,再在双引号中用到字符串之类的   要用单引号来表示

这里有这样一段代码   小弟不太懂

列子1:     response.write" <a   href='paging.asp?page="&i&"'> "


列子2:     response.write" <td> "&objrs.field(j).value&" </td> "


请教各位,在列子1中,第一个“"”的结尾符是在哪里?是最后一个“"”吗?   判断双引号和单引号和单引号的起止符应该怎么判断?如列子1中的第一个“"”   应该是找离它最近的“"”   还是最后一个“"”   ?       就是说   是找离它自身最近的   还是说是第一个配最后一个,   第2个   配倒数第2个?(就像if,end   if   一样的规则),到底是哪种找法?
我是新人恳请大家指教~~~

最后还想问下   有没有类似双引号和单引号的使用规则或者说明之类的东东可以让小弟看下???
发表于:2008-01-21 17:53:011楼 得分:0
先自己顶下   ~~
发表于:2008-01-21 18:11:082楼 得分:0
字符串应该是先进后出,跟函数中的(是一样的,&   是链接符号表示连接了两个字符串,'只是字符串中的一个符号,需要输出后在html中检测是否匹配,原则也应该遵循先进后出
1中的" <a   href='paging.asp?page="   和i和"'> "被&连接
2中" <td> "和objrs.field(j).value和" </td>   "被&连接
象response.write   """"这个可以看出这个原则.
我是这样理解的,不知道对不对.
发表于:2008-01-21 18:40:423楼 得分:0
先进后出?不是很能明白~
能不能说得更详细点~~
发表于:2008-01-21 18:59:254楼 得分:0
第一个,其实是这样:
vbscript code
response.write [color=#ff0000]"<a href='paging.asp?page="[/color] & [color=#800080]i[/color] & "[color=#0000ff]'>[/color]"
发表于:2008-01-21 19:00:535楼 得分:0
我靠,csdn的破回帖系统,真tm服了,颜色都不能嵌套在代码框中。

是这样,要是不行我再回:

response.write   " <a   href='paging.asp?page="   &   i   &   "'> "
发表于:2008-01-21 19:02:536楼 得分:0
看5楼的帖子,一共有三部分,红色的是一部分,中间的变量i是另一部分,后面双引号之间的'> 是第三部分。
&是一个连接符号,表示把上述三部分的字符或字符串连接起来。

第二个例子同理,写代码的时候把&的左右各加一个空格,就容易理解了。
发表于:2008-01-21 19:35:537楼 得分:0
哦~   看了robur的示范     那是不是就是说   "   符号是紧着离它最近的"就是它的中止的符号吧~

"   <a       href='paging.asp?page="                           1      
&       i       &                                                                     2
  "'>   "                                                                           3

这里的   '   符号是不是作为了字符输出??

还是说其他?
就这个   '   符号这里不是很明白

如果是仅仅表示作为符号输出到能明白
如果不是作为字符输出   而是如双引号里面套字符得用单引号这样的规定   那123部分中间不是格了个变量   然后这个   '   的终止符号   '   出现在第3部分   这样也可以??
发表于:2008-01-22 03:06:448楼 得分:0
转贴:单引号?双引号?   -   论vbscript中某些特殊字符串的构造
在开始前因为本人奇懒,所以先
const   vbs   =   "vbscript"

刚才看了一位朋友学习asp后关于字符串赋值中单引号以及双引号的使用体会,不禁茫然,因为根本连我都越看越糊涂,莫非vbs中竟然有我从来未听闻过的东西?
忽然间,觉得很有必要跟大家讲讲这个问题,让大家明白其中原理.


其重点就是:双引号是vbs的字符串界定符,而单引号跟vbs根本任何关系都没有
下面就两种常见的情况来说一下

第一种情况:输出html语句
单引号只是html语言中的界定,当然在html语言中可以使用双引号界定属性,但因为在vbs中输出html,所以必须使用单引号,或双引号的转义符,否则vbs程序会将它看作是界定字符串,如下
a   =   " <font   color="red"> </font> "

这个是不能运行的,因为语法错误,我们按vbs的语法标准把它拆开来看
" <font   color="这里界定了一个字符串,"> </font> "这里又界定了一个
这时可以看出,实际类似于
a   =   字符串red字符串

而red是运算符吗?不是。所以很显然这个表达式不合理,这时vbs就将它作为整个字符串来看待,而vbs中给语句赋值为字符串后程序是以第2个双引号出现的位置作为赋值语句的终结。所以,当在一句正确的赋值语句后又出现了字符串,结果报错“程序语句为结束”

而如果把其中html控件font的属性red的赋值界定符号改为'或chr(34)的话,则程序可以顺利地执行,如下
a   =   " <font   color='red'> </font> "

a   =   " <font   color=   &   chr(34)   &   red   &   chr(34)   &> </font> "

同时,我们知道在c中,可以以\+某些特定字符构成某些程序语法中所使用的字符的转义符以使程序顺利执行,如\"、\'等,同样的,在vbs中也可以以""(两个双引号)构成"的转义符而使程序顺利执行,如下
a   =   " <font   color=   ""   red   ""> </font> "


第二种情况:构造sql语句
在vbs中sql语句的赋值也与上面所说的html语句构造同理.至于单引号,在sql语句中则是因为在sql语法中单引号为字符串界定符所以用它而已,如文本字段和数值字段的赋值:
1.id为数值字段,根据它查询记录
sql   =   "select   *   from   table   where   id=1"
2.uname为文本字段,根据它查询记录
sql   =   "select   *   from   table   where   uname='姓名'"
这个大家应该能写出来吧。这里的单引号就是sql语法中界定"姓名"为一个字符串的作用
现在我们将它们的值用我们的变/常量输入
1.id为gid变量
sql   =   "select   *   from   table   where   id="   &   gid   &   ""
因为后面跟了个空字符串,所以可以去掉它而成如下语句
sql   =   "select   *   from   table   where   id="   &   gid

2.uname为变量username
sql   =   "select   *   from   table   where   uname='"   &   username   &   "'"
在这里,我们就把原来的值"姓名"部分用变量username代替,即是将字符串"select   *   from   table   where   uname='"与变量username拼合,再连结上字符串"'",如果你要问为什么,请仔细看上面例子中uname值为"姓名"时的写法,再比对现在的写法,前提是你必须会在vbs中组合字符串(应该都会吧:))

如果你使用的sql语法中是将其它符号作为字符界定符的话,那你就必须使用符合你所使用的sql语法规则的界定符号

从上面举的例子看,单引号完全是作为html语句或sql语句的一部分来赋值,与vbs却无任何关系,希望这帖会对某些犹在对单引号或双引号问题不解的朋友有所帮助,如果你能真正的深入体会了这些原理的话,对其他程序语言的同类问题相信也能很快解决(我在明白这些以后,我对javascript中字符串的赋值就再也没卡壳的现象了:))
发表于:2008-01-22 03:08:349楼 得分:0
转贴:单引号?双引号?   -   论vbscript中某些特殊字符串的构造
在开始前因为本人奇懒,所以先
const   vbs   =   "vbscript"

刚才看了一位朋友学习asp后关于字符串赋值中单引号以及双引号的使用体会,不禁茫然,因为根本连我都越看越糊涂,莫非vbs中竟然有我从来未听闻过的东西?
忽然间,觉得很有必要跟大家讲讲这个问题,让大家明白其中原理.


其重点就是:双引号是vbs的字符串界定符,而单引号跟vbs根本任何关系都没有
下面就两种常见的情况来说一下

第一种情况:输出html语句
单引号只是html语言中的界定,当然在html语言中可以使用双引号界定属性,但因为在vbs中输出html,所以必须使用单引号,或双引号的转义符,否则vbs程序会将它看作是界定字符串,如下
a   =   " <font   color="red"> </font> "

这个是不能运行的,因为语法错误,我们按vbs的语法标准把它拆开来看
" <font   color="这里界定了一个字符串,"> </font> "这里又界定了一个
这时可以看出,实际类似于
a   =   字符串red字符串

而red是运算符吗?不是。所以很显然这个表达式不合理,这时vbs就将它作为整个字符串来看待,而vbs中给语句赋值为字符串后程序是以第2个双引号出现的位置作为赋值语句的终结。所以,当在一句正确的赋值语句后又出现了字符串,结果报错“程序语句为结束”

而如果把其中html控件font的属性red的赋值界定符号改为'或chr(34)的话,则程序可以顺利地执行,如下
a   =   " <font   color='red'> </font> "

a   =   " <font   color=   &   chr(34)   &   red   &   chr(34)   &> </font> "

同时,我们知道在c中,可以以\+某些特定字符构成某些程序语法中所使用的字符的转义符以使程序顺利执行,如\"、\'等,同样的,在vbs中也可以以""(两个双引号)构成"的转义符而使程序顺利执行,如下
a   =   " <font   color=   ""   red   ""> </font> "


第二种情况:构造sql语句
在vbs中sql语句的赋值也与上面所说的html语句构造同理.至于单引号,在sql语句中则是因为在sql语法中单引号为字符串界定符所以用它而已,如文本字段和数值字段的赋值:
1.id为数值字段,根据它查询记录
sql   =   "select   *   from   table   where   id=1"
2.uname为文本字段,根据它查询记录
sql   =   "select   *   from   table   where   uname='姓名'"
这个大家应该能写出来吧。这里的单引号就是sql语法中界定"姓名"为一个字符串的作用
现在我们将它们的值用我们的变/常量输入
1.id为gid变量
sql   =   "select   *   from   table   where   id="   &   gid   &   ""
因为后面跟了个空字符串,所以可以去掉它而成如下语句
sql   =   "select   *   from   table   where   id="   &   gid

2.uname为变量username
sql   =   "select   *   from   table   where   uname='"   &   username   &   "'"
在这里,我们就把原来的值"姓名"部分用变量username代替,即是将字符串"select   *   from   table   where   uname='"与变量username拼合,再连结上字符串"'",如果你要问为什么,请仔细看上面例子中uname值为"姓名"时的写法,再比对现在的写法,前提是你必须会在vbs中组合字符串(应该都会吧:))

如果你使用的sql语法中是将其它符号作为字符界定符的话,那你就必须使用符合你所使用的sql语法规则的界定符号

从上面举的例子看,单引号完全是作为html语句或sql语句的一部分来赋值,与vbs却无任何关系,希望这帖会对某些犹在对单引号或双引号问题不解的朋友有所帮助,如果你能真正的深入体会了这些原理的话,对其他程序语言的同类问题相信也能很快解决(我在明白这些以后,我对javascript中字符串的赋值就再也没卡壳的现象了:))
发表于:2008-01-22 19:49:1210楼 得分:0
回#7的,单引号在双引号的作用范围之内,就是个普通的字符,没有意义。
如果单独拿出来,是单行注释。


快速检索

最新资讯
热门点击