一些ASP JS HTML零散技巧

〓简介〓
字符意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。
例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示匹配一个单词的分界线。或者:对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配'a*'。

〓正文〓
字符
意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。
例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示
匹配一个单词的分界线。
或者:
对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。
例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。
为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配'a*'。

字符^
意义:表示匹配的字符必须在最前边。
例如:/^A/不匹配"an A,"中的'A',但匹配"An A."中最前面的'A'。

字符$
意义:与^类似,匹配最末的字符。
例如:/t$/不匹配"eater"中的't',但匹配"eat"中的't'。

字符*
意义:匹配*前面的字符0次或n次。
例如:/bo*/匹配"A ghost booooed"中的'boooo'或"A bird warbled"中的'b',但不匹配"A goat g
runted"中的任何字符。

字符+
意义:匹配+号前面的字符1次或n次。等价于{1,}。
例如:/a+/匹配"candy"中的'a'和"caaaaaaandy."中的所有'a'。

字符?
意义:匹配?前面的字符0次或1次。
例如:/e?le?/匹配"angel"中的'el'和"angle."中的'le'。

字符.
意义:(小数点)匹配除换行符外的所有单个的字符。
例如:/.n/匹配"nay, an apple is on the tree"中的'an'和'on',但不匹配'nay'。


字符(x)
意义:匹配'x'并记录匹配的值。
例如:/(foo)/匹配和记录"foo bar."中的'foo'。匹配子串能被结果数组中的素[1], ..., [n] 返
回,或被RegExp对象的属性$1, ..., $9返回。

字符x|y
意义:匹配'x'或者'y'。
例如:/green|red/匹配"green apple"中的'green'和"red apple."中的'red'。

字符{n}
意义:这里的n是一个正整数。匹配前面的n个字符。
例如:/a{2}/不匹配"candy,"中的'a',但匹配"caandy," 中的所有'a'和"caaandy."中前面的两个
'a'。

字符{n,}
意义:这里的n是一个正整数。匹配至少n个前面的字符。
例如:/a{2,}不匹配"candy"中的'a',但匹配"caandy"中的所有'a'和"caaaaaaandy."中的所有'a'

字符{n,m}
意义:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。
例如:/a{1,3}/不匹配"cndy"中的任何字符,但匹配 "candy,"中的'a',"caandy," 中的前面两个
'a'和"caaaaaaandy"中前面的三个'a',注意:即使"caaaaaaandy" 中有很多个'a',但只匹配前面的三
个'a'即"aaa"。

字符[xyz]
意义:一字符列表,匹配列出中的任一字符。你可以通过连字符-指出一个字符范围。
例如:[abcd]跟[a-c]一样。它们匹配"brisket"中的'b'和"ache"中的'c'。

字符[^xyz]
意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符-指出一
字符范围。
例如:[^abc]和[^a-c]等价,它们最早匹配"brisket"中的'r'和"chop."中的'h'。

字符[b]
意义:匹配一个空格(不要与b混淆)

字符b
意义:匹配一个单词的分界线,比如一个空格(不要与[b]混淆)
例如:/bnw/匹配"noonday"中的'no',/wyb/匹配"possibly yesterday."中的'ly'。

字符B
意义:匹配一个单词的非分界线
例如:/wBn/匹配"noonday"中的'on',/yBw/匹配"possibly yesterday."中的'ye'。

字符cX
意义:这里的X是一个控制字符。匹配一个字符串的控制字符。
例如:/cM/匹配一个字符串中的control-M。

字符d
意义:匹配一个数字,等价于[0-9]。
例如:/d/或/[0-9]/匹配"B2 is the suite number."中的'2'。

字符D
意义:匹配任何的非数字,等价于[^0-9]。
例如:/D/或/[^0-9]/匹配"B2 is the suite number."中的'B'。

字符f
意义:匹配一个表单符

字符n
意义:匹配一个换行符

字符r
意义:匹配一个回车符

字符s
意义:匹配一个单个white空格符,包括空格,tab,form feed,换行符,等价于[ fnrtv]。
例如:/sw*/匹配"foo bar."中的' bar'。

字符S
意义:匹配除white空格符以外的一个单个的字符,等价于[^ fnrtv]。
例如:/S/w*匹配"foo bar."中的'foo'。

字符t
意义:匹配一个制表符

字符v
意义:匹配一个顶头制表符

字符w
意义:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。
例如:/w/匹配"apple,"中的'a',"$5.28,"中的'5'和"3D."中的'3'。

字符W
意义:匹配除数字、字母外及下划线外的其它字符,等价于[^A-Za-z0-9_]。
例如:/W/或者/[^$A-Za-z0-9_]/匹配"50%."中的'%'。

字符n
意义:这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。

例如:/apple(,)sorange1/匹配"apple, orange, cherry, peach."中的'apple, orange',下面
有一个更加完整的例子。
注意:如果左圆括号中的数字比n指定的数字还小,则n取下一行的八进制escape作为描述。

字符ooctal和xhex
意义:这里的ooctal是一个八进制的escape值,而xhex是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码。

 

 

详解如何在后台管理中进行批量操作(ASP+Script)


〓简介〓
我们常看到有些优秀的后台管理系统都是可以对信息批量操作的,比如点击一个复选框,全部选中(取消选中),然后一个确定按钮就可以全部删除(更新)那些信息了,其实这也不难,只是需要了一段小脚本……

〓正文〓
比如表单页面里全选的HTML语句是这样的

<input type="checkbox" name="chkAll" value="on" onClick="CheckAll(this.form)">《全部选中》

这里就定义了一个CheckAll函数, this.form 表示动作当前的表单里,

onClick的意思就是当鼠标按下放开执行这样一个点击动作后激活CheckAll函数

而这个CheckAll函数的源代码也很简单:
========================================================
<script>
function CheckAll(form){
for (var i=0;i<form.elements.length;i++){
var e = form.elements[i];
if (e.name != 'chkAll')
e.checked = form.chkAll.checked;
}
}
</script>
===================================================
里面仅仅是一个FOR(initallization; test; increment) 典型的JS循环语句

initallization 表示循环开始付值一次这里是 var i=0 由于JS语法是强制每个变

量必须声明后才能使用的,而声明JS变量的声明方式可以有两种一种是先声明,

换行后付值比如:

var i, a
i = 1
a = 0

而另一种则是在同一行同时声明并付值 比如 var i = 0 当然了,我这里用的是后者

(不行了,老娘喊我吃饭了,待会儿回来接着说……)

…………吃好了,可以接着说了, 下面这句是i<form.elements.length,理论上讲

form.elements.length是获取当前表单里总共有多少个复选框(checkbox)获取的值是个整数类型

与i作比较,如果i小于他,则执行循环语句里的内容,后面的 i++ 则表示条件成立后每循环一次

i的数值累加一,这样当i累加到大于form.elements.length取得的数值后退出循环!

值得注意的是form.elements.length所获得的复选框的个数是包括那个form表单里

《全部选中》的那个复选框的

<input type="checkbox" name="chkAll" value="on" onClick="CheckAll(this.form)">《全部选中》


所以接下来的语句 var e = form.elements[i]; 接着声明一个变量,记录循环到了哪个复选框

而全部选中的那个复选框名称为chkAll,所以我们对复选框名称(name)不为chkAll的

进行操作 if (e.name != 'chkAll')

!= 在JS中表示不等于,后面的语句 e.checked = form.chkAll.checked; 让所有的复选框的状态

都等于表单中chkAll的状态(checked表示选中),这里需要注意的是JS当中对变量命名的大小写

是敏感的(也就是区分大小写,所以chkAll和chkall脚本执行当中或把它解释成两个不同的名字)

至此批量操作脚本方面的语法就全部解释完了,下面是ASP方面要注意的

由于checkbox复选框获取的值是以数组的形式存在的比如我们一个名称为ID记录数据库内容ID自动编号


复选框,用 ID = Request.Form("ID") 取得的值直接不做处理显示出来会是以数组形式存在的,

ID = "3,22,32,66,6543" 那么在ASP语句里想以此为条件批量执行操作则必须把它们以单个数值的形式

提取出来,当然我们可以很简单地做到比如你在SQL查询语句里将等号(=)替换成(in)旁边再多加

两个括号就行了,比如原来的删除语句 sql = "delete id from table where id = " & id & ""

现在批量删除只要改成 sql = "delete id from table where id in (" & id & ")" 就OK了!

可是如果我们是要用ID这个数组里的每个数值为条件去查询数据库相关内容 用 where in

就不太好操作了,我们这时候需要将ID这个数组以循环形式单独提取出来,

一一进行操作,那么我们还需要

多用到一个变量(IDD),一个VBS内置函数(Split)和一个循环语句(For Each …… Next)

当然变量IDD是我们自己取的名字,您可以根据喜好自己定义,函数Split的作用是返回指定字符串的一维数组

For Each …… Next的作用是依据指定的数字重复循环执行一次,当我们用ID = Request.Form("ID")

获得一个数组的时候 紧接下面 IDD = Split(ID,",") 或者这个字符串的一维数组

接着

For ID Each in IDD

执行你的代码, 而这期间代码的条件 你就可以用等号了 where id = " & id & ""

Next


这样的代码本来就是万无一失的,可是我还是遇到了一个让我头疼半天的问题,还在已经找到原因解决了

下面我告诉你吧免得以后碰到就不会不知所措了……

Request.Form("ID") 获得的字符串"2,33,454,3222" 本来中间的逗号分隔符,都应该是英文半角的这样Split才能

辨认,而我有次获取出来的居然都是用中文半角逗号的分隔符"2,24,55,342,322",每次在调试的时候都告诉我说

数据溢出,搞不懂,后来我用VBS的Replace函数作了一下替换就OK了,就是在 ID = Request.Form("ID") 的下面

加一句 ID = Replace(ID,",",",") 将ID字符串里的中文逗号全部替换成英文半角的,呵呵,也怪我懒

没有追根溯源看看到底为什么会全变成中文半角的逗号!如果哪位高手知道的话请告知小弟,在下感激不尽!

 

客户端脚本,值得收藏!


〓简介〓
屏闭右键,防止别人Frame,不准粘帖,不准复制,IE限制自己的图标,网页另存,查看网页代码,等等!

〓正文〓
1. oncontextmenu="window.event.returnvalue=false"      将彻底屏蔽鼠标右键
    <table border oncontextmenu=return(false)><td>no</table>   可用于Table

2. <body onselectstart="return false">                 取消选取、防止复制

3. onpaste="return false"                                        不准粘贴

4. oncopy="return false;" oncut="return false;"                  防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode:disabled">                           关闭输入法

8. 永远都会带着框架
<script language="javascript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>

9. 防止被人frame
<SCRIPT LANGUAGE=javascript><!--  
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. <noscript>< src=*.html></></noscript>     网页将不能被另存为

11. <input type=button value=查看网页源代码  
onclick="window.location = 'view-source:'+ ' http://www.TOL8.com/&#39;">

12. 怎样通过asp的手段来检查来访者是否用了代理
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
response.write "<font color=#FF0000>您通过了代理服务器,"& _
"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
%>

13. 取得控件的绝对位置

//javascript
<script language="javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
    t+=e.offsetTop;
    l+=e.offsetLeft;
    }
alert("top="+t+"\nleft="+l);
}
</script>

//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
    set a = a.offsetParent
    t=t+a.offsetTop
    l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>

14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判断上一页的来源
asp:
request.servervariables("HTTP_REFERER")

javascript:
document.referrer

16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">  
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">  
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="Close"></OBJECT>

<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE

17.  
<%
'定义数据库连接的一些常量
Const adOpenForwardOnly     = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark
Const adOpenKeyset          = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const adOpenDynamic         = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const adOpenStatic          = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

Const adLockReadOnly        = 1 '锁定类型,默认的,只读,不能作任何修改
Const adLockPessimistic     = 2 '当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic      = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

Const adCmdText = &H0001
Const adCmdTable = &H0002
%>

18. 网页不会被缓存
HTM网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP网页
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");


19. 检查一段字符串是否全由数字组成
<script language="javascript"><!--
function checkNum(str){return str.match(/\D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

20. 获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight

21. 怎么判断是否是字符
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

22.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

23. 日期减去天数等于第二个日期
<script language=javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

24. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
    if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

25.获得本页url的request.servervariables("")集合
Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
for each ob in Request.ServerVariables
Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write "</TABLE>"

26.
本机ip<%=request.servervariables("remote_addr")%>
服务器名<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
脚本超时时间<%=Server.ScriptTimeout%>
本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服务器操作系统<%=Request.ServerVariables("OS")%>

27.ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

28. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=javascript>
tim=1
setInterval("tim++",100)
b=1

var autourl=new Array()
autourl[1]=" www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]=" www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]=" www.cctv.com"

function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=测试中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO onclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl[i]+"/"+Math.random()+" width=1 height=1 onerror=auto(' http://";;+autourl[i]+"')>")}
run()</script>

29. 各种样式的光标
auto          :标准光标
default       :标准箭头
hand          :手形光标
wait          :等待光标
text          :I形光标
vertical-text :水平I形光标
no-drop       :不可拖动光标
not-allowed   :无效光标
help          :?帮助光标
all-scroll    :三角方向标
move          :移动标
crosshair     :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

本博客所有文章如无特别注明均为原创。作者:sysdee复制或转载请以超链接形式注明转自 成功志
原文地址《一些ASP JS HTML零散技巧
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)