|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,在网页中输日期、工夫、IP地点等必要必定的格局限定,不然将会程序将会很难和程序相同。
比来在做一个程序恰好必要用到此方面,在网上找到过响应的程序,但用起来都十分恶,因而乎只好本人完成一个了。 起首完成两个函数用来操纵光标:
//失掉一个文本框控件确当前光标地位
functiongetPos(obj)
{
obj.focus();
varworkRange=document.selection.createRange();
obj.select();
varallRange=document.selection.createRange();
workRange.setEndPoint("StartToStart",allRange);
varlen=workRange.text.length;
workRange.collapse(false);
workRange.select();
returnlen;
}
//设置一个文本框控件确当前光标地位
functionsetCursor(obj,num){
range=obj.createTextRange();
range.collapse(true);
range.moveStart(character,num);
range.select();
}
次要函数完成的次要头脑是当键盘按下时举行一些操纵,我计划在onKeyDown事务中。
在onKeyDown中,起首将体系默许的键盘处置屏障失落
//封住传统处置
window.event.returnValue=false;
然后处置响应必要处置的键盘动静。
这里任意处置几个需要的就能够了,由于文本框自己也不必要甚么太多的用户操纵,以是把光标的前移、后移、删除操纵举行处置,如许你的文本框就有了基础的操纵,如今操纵起来已很随手了。
//自行处置按钮
switch(nKeyCode)
{
case8://假如举措是退格[<-]
{
strText=strText.substr(0,nCursorPos-1)+strText.substr(nCursorPos,nTextLen-nCursorPos);
nCursorPos--;
break;
}
case46://假如举措是del[del]
{
strText=strText.substr(0,nCursorPos)+strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);
nCursorPos--;
break;
}
case38://假如举措是偏向键[上]
case39://假如举措是偏向键[右]
{
nCursorPos++;
break;
}
case37://假如举措是偏向键[左]
case40://假如举措是偏向键[下]
{
nCursorPos--;
break;
}
default:
{
strText=strText.substr(0,nCursorPos)+String.fromCharCode(nKeyCode)+strText.substr(nCursorPos,nTextLen);
nCursorPos++;
if(nCursorPos>strText.length)
{
nCursorPos=strText.length;
}
break;
}
}
别的的任何动静都当增加一个字符,可见不成见的字符,都将增加并光标今后走一下。见上方的default处置部分。
然后判别掩码是不是准确,假如准确,那末此次输出正当,将值显现增加到文本框中。
if(strText.match(expMask))
{
//输出格局准确
objTextBox.value=strText;
}
最初将光标移到得当的地位。
//挪动光标
setCursor(objTextBox,nCursorPos);
完成!
其次要就是把体系的键盘动静交换成本人的处置,屏障失落体系的,如许就能够取得最年夜的操控。
云云就完成了一个对指定的正则表达式举行格局限定的TEXTBOX就出生了。
附完全代码:
//依据指定正表达式,来把持OBJ暗示
functionmask(objTextBox,mask)
{
//掩码
expMask=newRegExp(mask);
//以后文本框中的文本
varstrText=objTextBox.value;
//文本长度
varnTextLen=strText.length;
//以后光标地位
varnCursorPos=getPos(objTextBox);
//按下的键码
varnKeyCode=window.event.keyCode;
if(nKeyCode>95)nKeyCode-=(95-47);
//封住传统处置
window.event.returnValue=false;
//自行处置按钮
switch(nKeyCode)
{
case8://假如举措是退格[<-]
{
strText=strText.substr(0,nCursorPos-1)+strText.substr(nCursorPos,nTextLen-nCursorPos);
nCursorPos--;
break;
}
case46://假如举措是del[del]
{
strText=strText.substr(0,nCursorPos)+strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);
nCursorPos--;
break;
}
case38://假如举措是偏向键[上]
case39://假如举措是偏向键[右]
{
nCursorPos++;
break;
}
case37://假如举措是偏向键[左]
case40://假如举措是偏向键[下]
{
nCursorPos--;
break;
}
default:
{
strText=strText.substr(0,nCursorPos)+String.fromCharCode(nKeyCode)+strText.substr(nCursorPos,nTextLen);
nCursorPos++;
if(nCursorPos>strText.length)
{
nCursorPos=strText.length;
}
break;
}
}
if(strText.match(expMask))
{
//输出格局准确
objTextBox.value=strText;
}
//挪动光标
setCursor(objTextBox,nCursorPos);
}
//失掉一个文本框控件确当前光标地位
functiongetPos(obj)
{
obj.focus();
varworkRange=document.selection.createRange();
obj.select();
varallRange=document.selection.createRange();
workRange.setEndPoint("StartToStart",allRange);
varlen=workRange.text.length;
workRange.collapse(false);
workRange.select();
returnlen;
}
//设置一个文本框控件确当前光标地位
functionsetCursor(obj,num){
range=obj.createTextRange();
range.collapse(true);
range.moveStart(character,num);
range.select();
}
利用办法:
1.设置默许的、不定的格局初值。如:日期工夫的格局初值为“//::”,暗示(年/月/日时:分:秒)。IP的为“...”(192.168.0.1)。实在就是设置一个不会违背正则表达式的字符就能够。
2.在表单的TEXT框的onKeyDown事务中挪用mask函数,参数objTextBox是指定的文本框的name。参数mask是正则表达式格局的掩码。
例子:
要利用日期工夫型的掩码框
<inputname="i_etmend"type="text"id="i_etmend"value="{I_ETMEND}"maxlength="19">
要利用IP掩码框
<inputname="i_bip"type="text"id="i_bip"value="{I_BIP}"maxlength="15">
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 |
|