快捷搜索:

收集一些常用的正则表达式,S开发中常用javaScript技术与代码

2019-11-13 19:10栏目:关于澳门金莎
TAG:

使用正则表明式

Posted on 2006-08-31 09:40 快乐每天 阅读(3930) 商讨(1)  编辑 收藏

关键字:正则表明式  形式相配 Javascript

摘要:采摘一些常用的正则表明式。

正则表明式用于字符串管理,表单验证等场面,实用高效,但用届时连连不太把握,引致往往要上网查生机勃勃番。笔者将后生可畏都部队分常用的表明式收藏在那地,作备忘之用。本贴任何时候会更新。

万分汉语字符的正则表达式: [u4e00-u9fa5]

非常双字节字符(包涵汉字在内):[^x00-xff]

行使:计算字符串的长度(三个双字节字符长度计2,ASCII字符计1卡塔 尔(英语:State of Qatar)

String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

相称空行的正则表明式:n[s| ]*r

相称HTML标识的正则表明式:/<(.*)>.*</1>|<(.*) />/

合营首尾空格的正则表明式:(^s*)|(s*$)

使用:javascript中并未有像vbscript那样的trim函数,我们就足以应用那些表明式来完毕,如下:

String.prototype.trim = function()
{
    return this.replace(/(^s*)|(s*$)/g, "");
}

运用正则表达式分解和更改IP地址:

上边是选取正则表明式相称IP地址,并将IP地址转变到对应数值的Javascript程序:

function IP2V(ip)
{
 re=/(d+).(d+).(d+).(d+)/g  //相称IP地址的正则表明式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
 throw new Error("Not a valid IP address!")
}
}

可是上边的前后相继生龙活虎旦不用正则表达式,而平素用split函数来批注只怕更简便易行,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

相配Email地址的正则表明式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

合营网站U宝马7系L的正则说明式: ./?%&=]*)?

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不得法,原因见本贴回复]

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2)  //结果为:abcefgi

自己原本在CSDN上发贴寻求一个表明式来促成去除重复字符的办法,最后未有找到,那是小编能体会精晓的最轻松易行的达成格局。思路是使用后向援用收取包含重复的字符,再以重复的字符建设构造第二个表达式,取到不重复的字符,两者串连。那几个点子对于字符顺序有要求的字符串也许不适用。

得用正则表达式从UCR-VL地址中提取文件名的javascript程序,如下结果为page1

s=""
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

行使正则表明式限定网页表单里的文本框输入内容:

用正则表明式限定只可以输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"

用正则表明式约束只好输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"

用正则表达式限定只可以输入数字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

用正则表明式限制只好输入数字和德文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

 

正则表明式,相关链接

微软的正则表明式教程(五卡塔尔:采取/编组和后向援用

微软的正则表明式教程(四卡塔尔:限制符和一定符

微软的正则表明式教程(三卡塔尔:字符相称

微软的正则表达式教程(二卡塔 尔(阿拉伯语:قطر‎:正则表明式语法和优先权顺序

微软的正则表明式教程(风流浪漫卡塔 尔(阿拉伯语:قطر‎:正则表达式简单介绍

小程序大作为:高档寻觅/替换、正则表达式演习器、Javascript脚本程序调节和测量试验器

卓绝正则表达式

正则表明式,正规表明式,正则表明式相配,正则表达式语法,方式相配,正规表明式相称javascript正则表明式 ASP正则表明式 ASP.NET正则表达式 C#正则表达式 JSP正则表明式 PHP正则表明式 VB.NET正则表明式 VBSCript正则表达式编程delphi正则表明式 jscript

摘要:搜罗一些常用的正则表明式。

在b/s开垦中不常选用的javaScript本领 
一、验证类
1、数字印证内
1.1 整数
1.2 大于0的整数 (用于传来的ID的表明)
1.3 负整数的认证
1.4 整数不可能凌驾i马克斯
1.5 整数无法小于iMin
2、时间类
2.1 短时间,形如 (13:04:06)
2.2 短日期,形如 (2003-12-05)
2.3 长时间,形如 (2003-12-05 13:04:06)
2.4 唯有年和月。形如(二零零零-05,大概二零零一-5)
2.5 独有小时和分钟,形如(12:03)
3、表单类
3.1 全部的表单的值都不可能为空
3.2 多创作本框的值无法为空。
3.3 多创作本框的值不能够凌驾s马克斯Strleng
3.4 多创作本框的值不能够简单sMixStrleng
3.5 判断单选框是或不是接收。
3.6 判定复选框是还是不是接收.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传进度中判定文件类型
4、字符类
4.1 推断字符全体由a-Z或许是A-Z的字字母组成
4.2 判定字符由字母和数字组成。
4.3 判定字符由字母和数字,下划线,点号组成.且最早的只好是下划线和字母
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 推断浏览器的种类
5.2 判断ie的版本
5.3 决断顾客端的分辨率

 

正则表明式 regular expression
正则表达式 RegExp
模式 pattern
匹配 Match
.NET命名空间: System.Text.RegularExpression

正则表明式用于字符串管理,表单验证等场馆,实用高效,但用届时老是不太把握,导致往往要上网查大器晚成番。作者将生龙活虎部分常用的表达式收藏在这里边,作备忘之用。本贴任何时候会更新。

6、结合类
6.1 email的判断。
6.2 手提式有线电话机号码的印证
6.3 居民身份证的辨证

 

补充:
^d+$  //相称非负整数(正整数 + 0卡塔尔国
^[0-9]*[1-9][0-9]*$  //相配正整数
^((-d+)|(0+))$  //相称非正整数(负整数 + 0卡塔 尔(英语:State of Qatar)
^-[0-9]*[1-9][0-9]*$  //相称负整数
^-?d+$    //相配整数
^d+(.d+)?$  //相称非负浮点数(正浮点数 + 0卡塔尔国
^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$  //相称正浮点数
^((-d+(.d+)?)|(0+(.0+)?))$  //匹配非正浮点数(负浮点数 + 0卡塔尔国
^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(-?d+)(.d+)?$  //匹配浮点数
^[A-Za-z]+$  //相称由27个匈牙利(Hungary卡塔 尔(英语:State of Qatar)语字母组成的字符串
^[A-Z]+$  //相配由26个斯洛伐克语字母的大写组成的字符串
^[a-z]+$  //相配由35个罗马尼亚语字母的小写组成的字符串
^[A-Za-z0-9]+$  //相配由数字和三十多个俄文字母组成的字符串
^w+$  //相称由数字、三十个塞尔维亚共和国语字母或许下划线组成的字符串
^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$  //匹配url

合营汉语字符的正则表明式: [u4e00-u9fa5]

二、功能类

 

动用正则表明式去除字串中另行的字符的算法程序:

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")

合营双字节字符(富含汉字在内):[^x00-xff]

1、时间与有关控件类
1.1 日历
1.2 时间控件
1.3 万年历
1.4 显示动态呈现石英钟效果(文本,如OA中时间卡塔 尔(英语:State of Qatar)
1.5 呈现动态呈现石英钟效果 (图像,像石英手表) 
2、表单类
2.1 自动生成表单
2.2 动态增加,改进,删除下拉框中的成分
2.3 能够输入内容的下拉框
2.4 多创作本框中只好输入iMax文字。假如多输入了,自动减削到iMax个文字(多用于短信发送)

alert(s1+s2) //结果为:abcefgi

如果var s = "abacabefggeeii"
结果就狼狈了,结果为:abeicfgg
正则表明式的技巧有限

运用:总计字符串的长短(一个双字节字符长度计2,ASCII字符计1卡塔尔国

3、打印类
3.1 打印控件
4、事件类
4.1 屏蔽右键
4.2 屏蔽全部功用键
4.3 --> 和<-- F5 F11,F9,F1
4.4 屏蔽组合键ctrl+N
5、网页设计类
5.1 再三再四滚动的文字,图片(注意是三回九转的,两段文字和图纸中并未有空白现身卡塔尔
5.2 html编辑控件类
5.3 颜色选拔框控件
5.4 下拉菜单
5.5 两层或多档案的次序的下拉菜单
5.6 仿IE菜单的开关。(效果如rongshuxa.com的领航栏目)
5.7 状态栏,title栏的动态效果(例子相当多,能够研商一下卡塔尔
5.8 双击后,网页自动滚屏
6、树型结构。
6.1 asp+SQL版
6.2 asp+xml+sql版
6.3 java+sql或者java+sql+xml
7、无边框效果的造作
8、连动下拉框技艺
9、文本排序

 

1.断定有效电子邮件格式
下边包车型客车代码示例使用静态 Regex.IsMatch 方法求证三个字符串是还是不是为使得电子邮件格式。借使字符串富含三个卓有功效的电子邮件地址,则 IsValidEmail 方法重临 true,不然重返false,但不采纳任何任何操作。您能够使用 IsValidEmail,在应用程序将地址存款和储蓄在数据库中或呈现在 ASP.NET 页中以前,筛选出含有无效字符的电子邮件地址。

[Visual Basic]
Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$")
End Function
[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$");
}

2.清理输入字符串
上面包车型大巴代码示例使用静态 Regex.Replace 方法从字符串中抽取无效字符。您可以动用这里定义的 CleanInput 方法,消亡掉在经受顾客输入的窗体的文本字段中输入的或者有剧毒的字符。CleanInput 在杀绝掉除 @、-(连字符卡塔 尔(阿拉伯语:قطر‎和 .(句点卡塔尔以外的富有非字母数字字符后重临贰个字符串。

[Visual Basic]
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^w.@-]", "")
End Function
[C#]
String CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^w.@-]", "");
}

3.修改日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日期格局代替 mm/dd/yy 的日子情势。

[Visual Basic]
Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"b(?<month>d{1,2})/(?<day>d{1,2})/(?<year>d{2,4})b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b",
"${day}-${month}-${year}");
}
Regex 替换方式
本示例表达如何在 Regex.Replace 的替换格局中应用命名的反向引用。在那之中,替换表明式 ${day} 插入由 (?<day>...) 组捕获的子字符串。

有三种静态函数使您能够在应用正则表明式操作时不须求创设显式正则表达式对象,而 Regex.Replace 函数正是在那之中之生龙活虎。假诺您不想保留编写翻译的正则表达式,这将给你带给有利

4.提取 URL 信息
以下代码示例使用 Match.Result 来从 UEnclaveL 提取左券和端口号。比方,“

[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex("^(?<proto>w+)://[^/]+?(?<port>:d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>w+)://[^/]+?(?<port>:d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}

 

  生机勃勃、正则表明式底子知识
  大家先从简单的起来。借令你要搜索一个包蕴字符“cat”的字符串,搜索用的正则表明式就是“cat”。假如寻找对大小写不灵动,单词“catalog”、“Catherine”、“sophisticated”都能够合作。也便是说:

图片 1

  1.1句点符号
  倘令你在玩葡萄牙共和国语拼字游戏,想要搜索两个假名的单词,并且这几个单词必须以“t”字母起首,以“n”字母截至。别的,假诺有一本朝鲜语字典,你能够用正则表明式找寻它的全部内容。要布局出那一个正则表明式,你还可以三个通配符??句点符号“.”。那样,完整的表达式正是“t.n”,它万分“tan”、“ten”、“tin”和“ton”,还合营“t#n”、“tpn”以至“tn”,还应该有其余非常多无意义的结缘。那是因为句点符号般配全数字符,满含空格、Tab字符以致换行符:

图片 2

  1.2方括号符号
  为了消除句点符号相称范围过于布满这一难点,你能够在方括号(“[]”卡塔尔国里面钦定看来有含义的字符。当时,唯有方括号内部钦赐的字符才参与协作。也正是说,正则表明式“t[aeio]n”只相当“tan”、“Ten”、“tin”和“ton”。但“Toon”不包容,因为在方括号之内你只可以匹配单个字符:

图片 3

  1.4意味非常次数的暗记
  表生机勃勃展现了代表特别次数的标识,那个标志用来鲜明紧靠该符号左侧包车型地铁暗号现身的次数:

图片 4

  借使大家要在文件文件中查找美利坚合众国的社会平安号码。那些编号的格式是999-99-9999。用来协作它的正则表明式如图风姿洒脱所示。在正则表明式中,连字符(“-”卡塔 尔(英语:State of Qatar)有着独特的含义,它代表八个范围,比方从0到9。由此,相称社会平安号码中的连字符号时,它的眼下要加上二个转义字符“”。

图片 5

  图生龙活虎:相配全数123-12-1234款式的社会安全号码
  假诺进行检索的时候,你愿意连字符号能够现身,也得以不现身??即,999-99-9999和999999999都属王海鸰确的格式。那时,你能够在连字符号前面加上“?”数量限定符号,如图二所示:

图片 6

  图二:相称全体123-12-1234和123121234情势的社会平安号码
  下边咱们再来看此外多个例子。花旗国小车牌照的生龙活虎种格式是七个数字增进一个假名。它的正则表明式前边是数字有的“[0-9]{ 4}”,再增进字母部分“[A-Z]{ 2}”。图三显示了完全的正则表明式。

图片 7

  图三:相配规范的美利坚同盟友小车许可证号码,如8836KV
  1.5“否”符号
  “^”符称得上为“否”符号。假诺用在方括号内,“^”表示不想要相称的字符。比方,图四的正则说明式相配全部单词,但以“X”字母开始的单词除了这几个之外。

图片 8

  图四:相称全体单词,但“X”初始的除此之外
  1.6圆括号和空白符号
  假诺要从格式为“朱恩26,一九五四”的破壳日日期中领到出月份部分,用来同盟该日期的正则表达式可以如图五所示:

图片 9

  图五:相配全体MothDD,YYYY格式的日期
  新现身的“s”符号是空白符号,匹配全数的空白字符,蕴含Tab字符。假若字符串精确相称,接下去怎么着提抽取月份部分吗?只需在月份左近加上三个圆括号创设一个组,然后用OROAPI(本文前面详细商量卡塔尔提收取它的值。纠正后的正则说明式如图六所示:

图片 10

  图六:相称全体MonthDD,YYYY格式的日期,定义月份值为第三个组
  1.7任何符号
  为方便起见,你能够动用部分为遍布正则表达式创立的连忙符号。如表二所示:
  表二:常用符号

图片 11

  举例,在前面社会安全号码的事例中,全部现身“[0-9]”的地点大家都能够使用“d”。改过后的正则表明式如图七所示:

图片 12

String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

一、验证类
1、数字表明内
1.1 整数
/^(-|+)?d+$/.test(str)
1.2 大于0的整数 (用于传来的ID的证实)
/^d+$/.test(str)
1.3 负整数的印证
/^-d+$/.test(str)
2、时间类
2.1 短时间,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);
if (a == null) {alert('输入的参数不是光阴格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1, r[4]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/; 
var r = str.match(reg); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
2.4 独有年和月。形如(二〇〇一-05,恐怕二〇〇一-5)
2.5 独有小时和分钟,形如(12:03)
3、表单类
3.1 全数的表单的值都无法为空
<input onblur="if(this.value.replace(/^s+|s+$/g,'')=='')alert('不可能为空!')">
3.2 多创作本框的值不能够为空。
3.3 多创作本框的值不能够逾越s马克斯Strleng
3.4 多创作本框的值不能够轻便sMixStrleng
3.5 决断单选框是不是选用。
3.6 推断复选框是还是不是接收.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传过程中推断文件类型
4、字符类
4.1 判定字符全部由a-Z或许是A-Z的字字母组成
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
4.2 推断字符由字母和数字组成。
<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
4.3 决断字符由字母和数字,下划线,点号组成.且早前的只好是下划线和字母
/^([a-zA-z_]{1})([w]*)$/g.test(str)
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判别浏览器的连串
window.navigator.appName
5.2 判断ie的版本
window.navigator.appVersion
5.3 判别客商端的分辨率
window.screen.height; window.screen.width;

/*------------------------ 功用:替换任何空白字符 -------------------------*/ function TrimString (strVal) { strTmp = strVal + ""; if (strTmp.length == 0) return (strTmp); reVal = /^s*/; strTmp = strTmp.replace (reVal, ''); reVal = /s*$/; return (strTmp.replace (reVal, '')); } /*------------------------ 效率:检验是还是不是是有效数字 -------------------------*/ function Check_Num( num ) { num = ( TrimString( num ) ); if (num.length == 0) return (false); return ( Number( num ) ); } /*------------------------ 效能:检查评定是不是是有效日期 -------------------------*/ function Check_Date (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[/|-](0?[1-9]|10|11|12)[/|-]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*------------------------ 功效:检查实验是还是不是是有效Email -------------------------*/ function Check_Email (strEmail) { strEmail = (TrimString (strEmail)); if (strEmail.length == 0) return (false); reVal = /^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+(.[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+)+$/; return (reVal.test (strEmail)); } /*------------------------ 成效:检查评定是不是是有效时间 -------------------------*/ function Check_Time (strTime) { strTime = (TrimString (strTime)); if (strTime.length == 0) return (false); reVal = /^(([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}|(0?[0-9]|1[0-1])(:([0-9]|[0-5][0-9])){0,2}s?[aApP][mM])?$/; return (reVal.test (strTime)); } /*------------------------ 效用:检查实验是不是是有效日期特定格式 -------------------------*/ function Check_Date_1 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[/](0?[1-9]|10|11|12)[/]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*------------------------ 功效:检验是还是不是是有效日期特定格式 -------------------------*/ function Check_Date_2 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[-](0[1-9]|10|11|12)[-]([1-2][0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*-------------------------------------- 功用:换行定行 ---------------------------------------*/ function enter( form, temp ) { if ( window.event.keyCode == 13 ) { eval( form + temp + ".focus()" ); eval( form + temp + ".select()" ); } else return (false); } /*-------------------------------------- 成效:检查字符串长度 ---------------------------------------*/ function ByteString (strVal) { nLen = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; }; return (nLen); } /*-------------------------------------- 效率:按供给截取字符串长度 ---------------------------------------*/ function SubString(strVal,nStrLen) { nLen = 0; nTemp = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; if(nLen <= nStrLen) nTemp = i; else break; }; return(strVal.substr(0,nTemp+1)); } /*------------------------ 功用:检查评定密码,密码只好由乌克兰语字母、数字、减号、下划线、$、#、*、(和)构成,且第一位必需是克罗地亚语字母 -------------------------*/ function Check_Pass( strPass ) { strPass = ( TrimString( strPass ) ); if (strPass.length == 0) return (false); reVal = /^[a-zA-Z]{1}[a-zA-Z0-9-_$#*()]{0,29}$/; return ( reVal.test (strPass) ); } 这是具有的,可是是PHP的,你自个儿调换一下吧~~

相配空行的正则表明式:n[s| ]*r

6、结合类
6.1 email的判断。
function ismail(mail)
{
return(new RegExp(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail));
}
6.2 手提式有线电话机号码的求证
6.3 身份ID的证实
function isIdCardNo(num)
{
if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re; 
if (len == 15)
re = new RegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
else if (len == 18)
re = new RegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
else {alert("输入的数字位数不对!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的居民身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
}
return true;
}

# re: 正则揭橥式 二零零七-02-28 00:59 yongsheng

^(((19)|(20))d{2})(((((-|/)0?)|0)[1-9])|((-|/)?1[0-2]))((((((-|/)0?)|0)[1-9])|((-|/)?[1-2][0-9]))|((-|/)?3[0-1]))$

2004-1-1格式

相称HTML标志的正则表明式:/<(.*)>.*</1>|<(.*) />/

3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>

# re: 正则发布式 二〇〇七-03-07 14:33 yongsheng

一、验证类
1、数字作证内
1.1 整数
1.2 大于0的卡尺头 (用于传来的ID的求证)
1.3 负整数的注明
1.4 整数不可能超越i马克斯
1.5 整数不能小于iMin
2、时间类
2.1 短时间,形如 (13:04:06)
2.2 短日期,形如 (2003-12-05)
2.3 长时间,形如 (2003-12-05 13:04:06)
2.4 只有年和月。形如(二〇〇〇-05,或然二〇〇二-5)
2.5 独有小时和分钟,形如(12:03)
3、表单类
3.1 全数的表单的值都不可能为空
3.2 多创作本框的值不可能为空。
3.3 多创作本框的值无法超出s马克斯Strleng
3.4 多创作本框的值必须要难sMixStrleng
3.5 判别单选框是还是不是接受。
3.6 推断复选框是或不是选用.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传进度中判定文件类型
4、字符类
4.1 判别字符全体由a-Z恐怕是A-Z的字字母组成
4.2 推断字符由字母和数字组合。
4.3 判定字符由字母和数字,下划线,点号组成.且先导的只可以是下划线和字母
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判别浏览器的门类
5.2 判断ie的版本
5.3 判别顾客端的分辨率

6、结合类
6.1 email的判断。
6.2 手机号码的求证
6.3 居民身份证的申明

二、功能类

1、时间与有关控件类
1.1 日历
1.2 时间控件
1.3 万年历
1.4 展现动态突显石英钟效果(文本,如OA中时间卡塔尔
1.5 突显动态显示机械钟效果 (图像,像时钟)
2、表单类
2.1 自动生成表单
2.2 动态增加,改革,删除下拉框中的成分
2.3 可以输入内容的下拉框
2.4 多创作本框中只可以输入i马克斯文字。假诺多输入了,自动减少到i马克斯个文字(多用来短信发送)

3、打印类
3.1 打字与印刷控件
4、事件类
4.1 屏蔽右键
4.2 屏蔽全体效能键
4.3 --> 和<-- F5 F11,F9,F1
4.4 屏蔽组合键ctrl+N
5、网页设计类
5.1 一而再滚动的文字,图片(注意是连接的,两段文字和图片中尚无空白现身卡塔尔国
5.2 html编辑控件类
5.3 颜色筛选框控件
5.4 下拉菜单
5.5 两层或多档次的下拉菜单
5.6 仿IE菜单的开关。(效果如rongshuxa.com的导航栏目)
5.7 状态栏,title栏的动态效果(例子比超级多,可以商量一下卡塔 尔(英语:State of Qatar)
5.8 双击后,网页自动滚屏
6、树型结构。
6.1 asp+SQL版
6.2 asp+xml+sql版
6.3 java+sql或者java+sql+xml
7、无边框效果的炮制
8、连动下拉框技能
9、文本排序

一、验证类
1、数字印证内
1.1 整数
/^(-|+)?d+$/.test(str)
1.2 大于0的卡尺头 (用于传来的ID的表明)
/^d+$/.test(str)
1.3 负整数的认证
/^-d+$/.test(str)
2、时间类
2.1 短时间,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);
if (a == null) {alert('输入的参数不是光阴格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
2.4 独有年和月。形如(二零零零-05,或许二〇〇〇-5)
2.5 独有时辰和分钟,形如(12:03)
3、表单类
3.1 全数的表单的值都无法为空
<input onblur="if(this.value.replace(/^s+|s+$/g,'')=='')alert('不可能为空!')">
3.2 多创作本框的值不能够为空。
3.3 多创作本框的值无法超过s马克斯Strleng
3.4 多创作本框的值无法轻松sMixStrleng
3.5 判定单选框是或不是接收。
3.6 推断复选框是还是不是选用.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传进度中决断文件类型
4、字符类
4.1 决断字符全体由a-Z或许是A-Z的字字母组成
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
4.2 判断字符由字母和数字构成。
<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
4.3 剖断字符由字母和数字,下划线,点号组成.且最早的只好是下划线和字母
/^([a-zA-z_]{1})([w]*)$/g.test(str)
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 推断浏览器的体系
window.navigator.appName
5.2 判断ie的版本
window.navigator.appVersion
5.3 决断客商端的分辨率
window.screen.height; window.screen.width;

6、结合类
6.1 email的判断。
function ismail(mail)
{
return(new RegExp(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail));
}
6.2 手提式有线电话机号码的证实
6.3 身份ID的印证
function isIdCardNo(num)
{
if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
else if (len == 18)
re = new RegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
else {alert("输入的数字位数不对!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的身份ID号 "+ a[0] +" 里出生辰期不对!"); return false;}
}
return true;
}

3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>

<input type=checkbox name=All2 onclick="checkAll('mm2')">全选<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
var a = document.getElementsByName(str);
var n = a.length;
for (var i=0; i<n; i++)
a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
var e = window.event.srcElement;
var all = eval("document.hrong."+ str);
if (e.checked)
{
var a = document.getElementsByName(e.name);
all.checked = true;
for (var i=0; i<a.length; i++)
{
if (!a[i].checked){ all.checked = false; break;}
}
}
else all.checked = false;
}
</SCRIPT>

3.8 文件上传进度中剖断文件类型
<input type=file onchange="alert(this.value.match(/^(.*)(.)(.{1,8})$/)[3])">

画图:
<OBJECT
id=S

height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ");
var bKey = WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\");
WScript.Echo (WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\MindReader"));
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\MindReader");
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\");
WshShell.RegDelete ("HKCU\Software\ACME\");
</SCRIPT>

TABLAE相关(客户端动态扩张行列卡塔尔国
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
var count=0;
for (i=0; i < document.all.mytable.rows.length; i++) {
for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
document.all.mytable.rows(i).cells(j).innerText = count;
count++;
}
}
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </TH></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
</TABLE>
</BODY>
</HTML>

1.身份ID严厉表明:

<script>
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

function cidInfo(sId){
var iSum=0
var info=""
if(!/^d{17}(d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:违规地带";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法华诞";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:违规证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

2.验证IP地址
<SCRIPT LANGUAGE="JavaScript">
function isip(s){
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
var re=s.split(".")
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

3.加sp1后还能够用的无限框窗口!!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" />
<title>Chromeless Window</title>

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

/*
This following code are designed and writen by Windy_sk <seasonx@163.net>
You can use it freely, but u must held all the copyright items!
*/

/*--- Thanks For andot Again ---*/

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.border }, onmousedown=function(){if(event.button!=2)this.style.border });background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

//Build Window
include.startDownload(CW_url, function(source){content=source});

function insert_content(){
var temp = "";
CW_Body.style.overflow = "hidden";
CW_Body.style.backgroundColor = "white";
CW_Body.style.border = "solid black 1px";
content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
temp += "<tr ondblclick="Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
temp += "<td >Chromeless Window For IE6 SP1</td>";
temp += "<td align=right>";
temp += "<span id=Help onclick="alert('Chromeless Window For IE6 SP1 - Ver 1.0\n\nCode By Windy_sk\n\nSpecial Thanks For andot')" style=""+CSStext+"font-family:System;padding-right:2px;">?</span>";
temp += "<span id=Min onclick='parent.New_CW.hide();parent.blur()' style=""+CSStext+"font-family:Webdings;" title='Minimum'>0</span>";
temp += "<span id=Max onclick="this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" style=""+CSStext+"font-family:Webdings;" title='Maximum'>1</span>";
temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=""+CSStext+"font-family:System;padding-right:2px;" title='Close'>x</span>";
temp += "</td></tr><tr><td colspan=2>";
temp += "<div id=include +CW_width+"'>";
temp += content;
temp += "</div>";
temp += "</td></tr></table>";
CW_Body.innerHTML = temp;
}

setTimeout("insert_content()",1000);

var if_max = true;
function show_CW(){
window.moveTo(10000, 10000);
if(if_max){
New_CW.show(CW_top, CW_left, CW_width, CW_height);
if(typeof(New_CW.document.all.include)!="undefined"){
New_CW.document.all.include.style.width = CW_width;
New_CW.document.all.Max.innerText = "1";
}

}else{
New_CW.show(0, 0, screen.width, screen.height);
New_CW.document.all.include.style.width = screen.width;
}
}

window.onfocus = show_CW;
window.onresize = show_CW;

// Move Window
var drag_x,drag_y,draging=false

function drag_move(e){
if (draging){
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
return false;
}
}

function drag_down(e){
if(e.button==2)return;
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
drag_x=e.clientX;
drag_y=e.clientY;
draging=true;
e.srcElement.setCapture();
}

function drag_up(e){
draging=false;
e.srcElement.releaseCapture();
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
CW_top = e.screenX-drag_x;
CW_left = e.screenY-drag_y;
}

</SCRIPT>
</HTML>

电话号码的表达

要求:
  (1)电话号码由数字、"("、")"和"-"构成
  (2)电话号码为3到8位
  (3)纵然电话号码中隐含有区号,那么区号为贰个人或几个人
  (4)区号用"("、")"或"-"和其余部分隔断
  (5)移动电话号码为11或10位,倘使为拾一个人,那么首先位为0
  (6)10个人移动电话号码的率先位和第二个人为"13"
  (7)10位移动电话号码的第几位和第肆个人为"13"
  依照这几条法规,可以与出以下正则表明式:
  (^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)

<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

装有在输入非数字字符不回显的法力,即对非数字字符的输入不作反应。
function numbersonly(field,event){
var key,keychar;
if(window.event){
key = window.event.keyCode;
}
else if (event){
key = event.which;
}
else{
return true
}
keychar = String.fromCharCode(key);
if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
return true;
}
else if(("0123456789.").indexOf(keychar)>-1){
window.status = "";
return true;
}
else {
window.status = "Field excepts numbers only";
return false;
}
}

验证ip

str=document.RegExpDemo.txtIP.value;
if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)
{
window.alert('错误的IP地址格式');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除 如 010.020.020.03 前面 的0
var str=str.replace(/0(d)/g,"$1");
str=str.replace(/0(d)/g,"$1");
window.alert(str);

//一下是取多少的类
//Obj参数钦点数量的起点(约束Table),暗中认可第一行为字段名称行
//GetTableData类提供MoveNext方法,参数是表的行向上或向下活动的位数,正数向下移动,负数向上.
//GetFieldData方法赢得钦定的列名的数目
//Sort_desc方法对点名的列按降序排列
//Sort_asc方法对点名的列按升序排列
//GetData方法再次来到字段值为特定值的数额数组,提供数据,能够在外表进行其它管理
//Delete方法删除当前记录,数组缩小风姿浪漫行
//开头化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
function GetTableData(Obj,LeftLen,RightLen){
var MyObj=document.all(Obj);
var iRow=MyObj.rows.length;
var iLen=MyObj.rows[0].cells.length;
var i,j;

TableData=new Array();
for (i=0;i< iRow;i++){
TableData[i]=new Array();
for (j=0;j<iLen;j++){
TableStr=MyObj.rows(i).cells(j).innerText;
TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
TableStr=TableStr.replace(/ /gi,"").replace(/rn/ig,"");
TableData[i][j]=TableStr;
}
}

this.TableData=TableData;
this.cols=this.TableData[0].length;
this.rows=this.TableData.length;
this.rowindex=0;
}

function movenext(Step){
if (this.rowindex>=this.rows){
return
}

if (Step=="" || typeof(Step)=="undefined") {
if (this.rowindex<this.rows-1)
this.rowindex++;
return;

}
else{
if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
this.rowindex=this.rowindex + Step;
}
else
{
if (this.rowindex + Step<0){
this.rowindex= 0;
return;
}
if (this.rowindex + Step>this.rows-1){
this.rowindex= this.rows-1;
return;
}
}
}
}

function getfielddata(Field){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
}
if (colindex!=-1) {
return this.TableData[this.rowindex][colindex];
}

}

function sort_desc(){//降序
var colindex=-1;
var highindex=-1;
desc_array=new Array();
var i,j;
for (n=0; n<arguments.length; n++){
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
if ( colindex==-1 )
return;
else
{
desc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
desc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){
if (desc_array[i][colindex]<this.TableData[j][colindex]){
desc_array[i]=this.TableData[j];
highindex=j;
}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));
}
}

this.TableData=desc_array;
}
return;
}

function sort_asc(){//升序
var colindex=-1;
var highindex=-1;
var i,j;
for (n=0; n<arguments.length; n++){
asc_array=new Array();
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
if ( colindex==-1 )
return;
else
{
asc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
asc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){//搜索最小的列值
if (asc_array[i][colindex]>this.TableData[j][colindex]){
asc_array[i]=this.TableData[j];
highindex=j;

}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));

}
}

this.TableData=asc_array;
}
return;
}

function getData(Field,FieldValue){
var colindex=-1;
var i,j;

GetData=new Array();
if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
return this.TableData;
}

for(j=0;j<this.cols;j++){
if (this.TableData[0][j]==Field){
colindex=j;
}
}
if (colindex!=-1){

for(i=1;i<this.rows;i++){
if (this.TableData[i][colindex]==FieldValue){
GetData[i]=new Array();
GetData[i]=this.TableData[i];
}
}
}
return GetData;
}
function DeletE(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));
this.rows=this.TableData.length;
return;
}
function updateField(Field,FieldValue){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
}
if (colindex!=-1) {
this.TableData[this.rowindex][colindex]=FieldValue;
}

}
function movefirst(){
this.rowindex=0;
}
function movelast(){
this.rowindex=this.rows-1;
}
function String.prototype.Trim() {return this.replace(/(^s*)|(s*$)/g,"");}
GetTableData.prototype.MoveNext = movenext;
GetTableData.prototype.GetFieldData = getfielddata;
GetTableData.prototype.Sort_asc = sort_asc;
GetTableData.prototype.Sort_desc = sort_desc;
GetTableData.prototype.GetData = getData;
GetTableData.prototype.Delete = DeletE;
GetTableData.prototype.UpdateField = updateField;
GetTableData.prototype.MoveFirst = movefirst;

现实的事例:

在每种文本框的onblur事件中调用校验代码,並且每一个文本框中onKeyDown事件中写贰个enter转tab函数

//回车键换为tab
function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}


优质首尾空格的正则表明式:(^s*)|(s*$)

<input type=checkbox name=All2 onclick="checkAll('mm2')">全选<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

接受:javascript中从未像vbscript那样的trim函数,大家就可以运用这一个表明式来达成,如下:

</form>

String.prototype.trim = function()
{
    return this.replace(/(^s*)|(s*$)/g, "");
}

<SCRIPT LANGUAGE="java script">
function checkAll(str)
{
var a = document.getElementsByName(str);
var n = a.length;
for (var i=0; i<n; i++)
a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
var e = window.event.srcElement;
var all = eval("document.hrong."+ str);
if (e.checked)
{
var a = document.getElementsByName(e.name);
all.checked = true;
for (var i=0; i<a.length; i++)
{
if (!a[i].checked){ all.checked = false; break;}
}
}
else all.checked = false;
}
</SCRIPT>

接收正则表达式分解和转移IP地址:

3.8 文件上传进度中推断文件类型
<input type=file onchange="alert(this.value.match(/^(.*)(.)(.{1,8})$/)[3])">

上面是行使正则表明式相配IP地址,并将IP地址调换到对应数值的Javascript程序:

画图:
<OBJECT 
id=S 
style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px" 
height=240 
width=392 
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

function IP2V(ip)
{
 re=/(d+).(d+).(d+).(d+)/g  //相配IP地址的正则表明式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
 throw new Error("Not a valid IP address!")
}
}

写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ");
var bKey = WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\");
WScript.Echo (WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\MindReader"));
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\MindReader");
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\");
WshShell.RegDelete ("HKCU\Software\ACME\");
</SCRIPT>

而是上面包车型大巴前后相继黄金年代旦不用正则表明式,而一贯用split函数来疏解恐怕更简便易行,程序如下:

TABLAE相关(客商端动态扩展行列卡塔 尔(阿拉伯语:قطر‎
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
var count=0;
for (i=0; i < document.all.mytable.rows.length; i++) {
for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
document.all.mytable.rows(i).cells(j).innerText = count;
count++;
}
}
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </TH></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
</TABLE>
</BODY>
</HTML> 

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

1.身份ID严峻验证:

相称Email地址的正则表明式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

<script>
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

相配网站UOdysseyL的正则表明式: ./?%&=]*)?

function cidInfo(sId){
var iSum=0
var info=""
if(!/^d{17}(d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地带";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:违法生辰";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:违法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不科学,原因见本贴回复]

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2)  //结果为:abcefgi

2.验证IP地址
<SCRIPT LANGUAGE="java script">
function isip(s){
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
var re=s.split(".")
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

自己本来在CSDN上发贴寻求二个表明式来落到实处去除重复字符的法子,最终未有找到,那是本身能体会掌握的最轻松易行的落到实处情势。思路是选用后向引用抽取包含重复的字符,再以重复的字符建构第贰个表达式,取到不重复的字符,两个串连。这些办法对于字符顺序有需要的字符串可能不适用。

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

得用正则表明式从U奥迪Q5L地址中提取文件名的javascript程序,如下结果为page1

3.加sp1后还能够用的无边框窗口!!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" STYLE="behavior:url(#default#download)" />
<title>Chromeless Window</title>

s=""
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

选择正则表明式限定网页表单里的文本框输入内容:

/*
This following code are designed and writen by Windy_sk <seasonx@163.net>
You can use it freely, but u must held all the copyright items!
*/

用 正则表明式限定只可以输入普通话:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"

/*--- Thanks For andot Again ---*/

用正则表明式约束只可以输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

用 正则表达式约束只可以输入数字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

//Build Window
include.startDownload(CW_url, function(source){content=source});

用 正则表达式节制只可以输入数字和德文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

function insert_content(){
var temp = "";
CW_Body.style.overflow = "hidden";
CW_Body.style.backgroundColor = "white";
CW_Body.style.border = "solid black 1px";
content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick="Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>";
temp += "<td style='color:#ffffff;padding-right:5px;' align=right>";
temp += "<span id=Help onclick="alert('Chromeless Window For IE6 SP1 - Ver 1.0\n\nCode By Windy_sk\n\nSpecial Thanks For andot')" style=""+CSStext+"font-family:System;padding-right:2px;">?</span>";
temp += "<span id=Min onclick='parent.New_CW.hide();parent.blur()' style=""+CSStext+"font-family:Webdings;" title='Minimum'>0</span>";
temp += "<span id=Max onclick="this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" style=""+CSStext+"font-family:Webdings;" title='Maximum'>1</span>";
temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=""+CSStext+"font-family:System;padding-right:2px;" title='Close'>x</span>";
temp += "</td></tr><tr><td colspan=2>";
temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>";
temp += content;
temp += "</div>";
temp += "</td></tr></table>";
CW_Body.innerHTML = temp;
}

 

setTimeout("insert_content()",1000);

正则表明式,相关链接

微软的正则表明式教程(五卡塔 尔(英语:State of Qatar):选用/编组和后向引用

var if_max = true;
function show_CW(){
window.moveTo(10000, 10000);
if(if_max){
New_CW.show(CW_top, CW_left, CW_width, CW_height);
if(typeof(New_CW.document.all.include)!="undefined"){
New_CW.document.all.include.style.width = CW_width;
New_CW.document.all.Max.innerText = "1";
}

微软的正则表达式教程(四卡塔 尔(英语:State of Qatar):节制符和定点符

}else{
New_CW.show(0, 0, screen.width, screen.height);
New_CW.document.all.include.style.width = screen.width;
}
}

微软的正则表达式教程(三卡塔尔:字符相配

window.onfocus = show_CW;
window.onresize = show_CW;

微软的正则表明式教程(二卡塔尔:正则表明式语法和优先权顺序

// Move Window
var drag_x,drag_y,draging=false

微软的正则表明式教程(风流浪漫卡塔尔:正则表达式简单介绍

function drag_move(e){
if (draging){
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
return false;
}
}

小程序大作为:高端寻找/替换、正则表明式练习器、Javascript脚本程序调节和测量检验器

function drag_down(e){
if(e.button==2)return;
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
drag_x=e.clientX;
drag_y=e.clientY;
draging=true;
e.srcElement.setCapture();
}

出色正则表达式

function drag_up(e){
draging=false;
e.srcElement.releaseCapture();
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
CW_top = e.screenX-drag_x;
CW_left = e.screenY-drag_y;
}

正 则表明式,正规表明式,正则表明式相配,正则表达式语法,模式相配,正规表达式匹配javascript正则表明式 ASP正则表明式 ASP.NET正则表明式 C#正则表明式 JSP正则表明式 PHP正则表达式 VB.NET正则表明式 VBSCript正则表明式编程delphi正则表明式 jscript

</SCRIPT>
</HTML>

 

正则表达式 regular expression
正则表明式 RegExp
模式 pattern
匹配 Match
.NET命名空间: System.Text.RegularExpression

电话号码的求证

 

补充:
^d+$  //匹配非负整数(正整数 + 0卡塔 尔(英语:State of Qatar)
^[0-9]*[1-9][0-9]*$  //相配正整数
^((-d+)|(0+))$  //相称非正整数(负整数 + 0卡塔 尔(英语:State of Qatar)
^-[0-9]*[1-9][0-9]*$  //相称负整数
^-?d+$    //相称整数
^d+(.d+)?$  //匹配非负浮点数(正浮点数 + 0卡塔尔
^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$  //相称正浮点数
^((-d+(.d+)?)|(0+(.0+)?))$  //相配非正浮点数(负浮点数 + 0卡塔 尔(英语:State of Qatar)
^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(-?d+)(.d+)?$  //相称浮点数
^[A-Za-z]+$  //相配由二十八个西班牙语字母组成的字符串
^[A-Z]+$  //相配由30个日文字母的大写组成的字符串
^[a-z]+$  //相称由贰十五个葡萄牙语字母的小写组成的字符串
^[A-Za-z0-9]+$  //相称由数字和贰十七个英语字母组成的字符串
^w+$  //相称由数字、三十几个German字母大概下划线组成的字符串
^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$  //匹配url

要求:
  (1)电话号码由数字、"("、")"和"-"构成
  (2)电话号码为3到8位
  (3)要是电话号码中蕴藏有区号,那么区号为三人或贰人
  (4)区号用"("、")"或"-"和其余部分隔离
  (5)移动电话号码为11或十位,假若为十一个人,那么首先位为0
  (6)十位移动电话号码的首先位和第叁位为"13"
  (7)11个人移动电话号码的第贰位和第三人为"13"
  依据这几条法则,能够与出以下正则表明式:
  (^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)

 

应用正则表达式去除字串中另行的字符的算法程序:

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")

<script language="java script">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

alert(s1+s2) //结果为:abcefgi

如果var s = "abacabefggeeii"
结果就难堪了,结果为:abeicfgg
正则表达式的力量有限

享有在输入非数字字符不回显的效应,即对非数字字符的输入不作反应。
function numbersonly(field,event){
var key,keychar;
if(window.event){
key = window.event.keyCode;
}
else if (event){
key = event.which;
}
else{
return true
}
keychar = String.fromCharCode(key);
if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
return true;
}
else if(("0123456789.").indexOf(keychar)>-1){
window.status = "";
return true;
}
else {
window.status = "Field excepts numbers only";
return false;
}
}

 

1.确认有效电子邮件格式
下 面包车型的士代码示例使用静态 Regex.IsMatch 方法求证叁个字符串是还是不是为使得电子邮件格式。要是字符串富含一个卓有成效的电子邮件地址,则 IsValidEmail 方法重返 true,不然重临false,但不选用任何任何操作。您能够使用 IsValidEmail,在应用程序将地址存款和储蓄在数据库中或呈现在 ASP.NET 页中在此之前,筛选出含有无效字符的电子邮件地址。

[Visual Basic]
Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$")
End Function
[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$");
}

2.清理输入字符串
上边包车型客车代码示例使用静态 Regex.Replace 方法从字符串中收取无效字符。您能够行使这里定义的 CleanInput 方法,消亡掉在肩负客户输入的窗体的文本字段中输入的或者有毒的字符。CleanInput 在撤消掉除 @、-(连字符卡塔 尔(英语:State of Qatar)和 .(句点卡塔 尔(阿拉伯语:قطر‎以外的富有非字母数字字符后再次来到八个字符串。

[Visual Basic]
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^w.@-]", "")
End Function
[C#]
String CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^w.@-]", "");
}

3.校订日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日子情势代替 mm/dd/yy 的日期方式。

[Visual Basic]
Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"b(?<month>d{1,2})/(?<day>d{1,2})/(?<year>d{2,4})b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b",
"${day}-${month}-${year}");
}
Regex 替换形式
本示例表明什么在 Regex.Replace 的改造情势中使用命名的反向援用。个中,替换表达式 ${day} 插入由 (?<day>...) 组捕获的子字符串。

有两种静态函数使您能够在使用正则表达式操作时没有要求创立显式正则表明式对象,而 Regex.Replace 函数就是里面之豆蔻梢头。纵然您不想保留编写翻译的正则表明式,那将给你带给方便

4.提取 URL 信息
以下代码示例使用 Match.Result 来从 U酷威L 提取左券和端口号。例如,“

[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex("^(?<proto>w+)://[^/]+?(?<port>:d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>w+)://[^/]+?(?<port>:d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}

 

  风度翩翩、正则表达式基本功知识
作者们先从简单的起先。即便你要查究贰个包蕴字符“cat”的字符串,搜索用的正则表明式正是“cat”。若是搜索对大小写不敏感,单词“catalog”、“Catherine”、“sophisticated”都足以宽容。也正是说:

图片 13

1.1句点符号
倘使你在玩匈牙利(Hungary卡塔尔国语拼字游戏,想要寻觅多个假名的单词,并且那个单词必需以“t”字母最初,以“n”字母停止。此外,假诺有一本韩文字典,你能够用正则表明式寻找它的全部内容。要组织出这一个正则表达式,你能够使用叁个通配符??句点符号“.”。那样,完整的表达式正是“t.n”,它格外“tan”、 “ten”、“tin”和“ton”,还十二分“t#n”、“tpn”以至“tn”,还应该有任何众多无意义的组成。那是因为句点符号相称全部字符,满含空格、 Tab字符甚至换行符:

图片 14

1.2方括号符号
为了缓慢解决句点符号相配范围过于分布那大器晚成主题素材,你能够在方括号(“[]”卡塔 尔(阿拉伯语:قطر‎里面钦点看来有意义的字符。那个时候,唯有方括号内部内定的字符才到场合作。也就是说,正则表明式“t[aeio]n”只格外“tan”、“Ten”、“tin”和“ton”。但“Toon”不宽容,因为在方括号之内你一定要相称单个字 符:

图片 15

1.4意味特出次数的符号
表意气风发显示了代表非常次数的符号,那些标识用来分明紧靠该符号侧边的标识现身的次数:

图片 16

假若大家要在文件文件中检索美利哥的社会平安号码。这些号码的格式是999-99-9999。用来同盟它的正则表明式如图意气风发所示。在正则表明式中,连字符 (“-”卡塔尔国有着独特的含义,它代表一个约束,譬如从0到9。由此,相称社会安全号码中的连字符号时,它的前边要抬高贰个转义字符“”。

图片 17

图大器晚成:相配全数123-12-1234情势的社会平安号码
风姿罗曼蒂克经进行查找的时候,你愿意连字符号能够现身,也能够不出新??即,999-99-9999和999999999都属王宛平确的格式。这个时候,你能够在连字符号后边加上“?”数量节制符号,如图二所示:

图片 18

图二:相配全部123-12-1234和123121234款式的社会平安号码
上面我们再来看此外多个例证。美利坚联邦合众国小车许可证的风姿洒脱种格式是多少个数字拉长三个字母。它的正则表明式前面是数字有的“[0-9]{ 4}”,再增加字母部分“[A-Z]{ 2}”。图三显得了生龙活虎体化的正则表达式。

图片 19

图三:相称标准的美利坚联邦合众国小车证件本号码,如8836KV
1.5“否”符号
“^”符称得上为“否”符号。如若用在方括号内,“^”表示不想要相称的字符。举例,图四的正则表明式相配全体单词,但以“X”字母最早的单词除了这么些之外。

图片 20

图四:相配全部单词,但“X”起头的不外乎
1.6圆括号和空白符号
只要要从格式为“June26,一九五五”的出生之日日期中提收取月份部分,用来合作该日期的正则表明式能够如图五所示:

图片 21

图五:相配全体MothDD,YYYY格式的日期
新面世的“s”符号是空白符号,相配全部的空白字符,包含Tab字符。纵然字符串正确相配,接下去怎么着提抽出月份部分吗?只需在月份周边加上贰个圆括号创设二个组,然后用OROAPI(本文前面详细座谈卡塔 尔(阿拉伯语:قطر‎提收取它的值。改过后的正则表达式如图六所示:

图片 22

图六:相配全部MonthDD,YYYY格式的日子,定义月份值为率先个组
1.7其余符号
为方便起见,你能够行使一些为司空见惯正则表明式创造的快速符号。如表二所示:
表二:常用符号

图片 23

举个例子,在前边社会平安号码的例子中,全部现身“[0-9]”的地点我们都能够行使“d”。改进后的正则表明式如图七所示:

图片 24

验证ip 

/*------------------------ 功用:替换任何空白字符 -------------------------*/ function TrimString (strVal) { strTmp = strVal + ""; if (strTmp.length == 0) return (strTmp); reVal = /^s*/; strTmp = strTmp.replace (reVal, ''); reVal = /s*$/; return (strTmp.replace (reVal, '')); } /*------------------------ 成效:质量评定是或不是是有效数字 -------------------------*/ function Check_Num( num ) { num = ( TrimString( num ) ); if (num.length == 0) return (false); return ( Number( num ) ); } /*------------------------ 功效:检查测量试验是或不是是有效日期 -------------------------*/ function Check_Date (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[/|-](0?[1-9]|10|11|12)[/|-]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*------------------------ 作用:检查测量检验是还是不是是有效Email -------------------------*/ function Check_Email (strEmail) { strEmail = (TrimString (strEmail)); if (strEmail.length == 0) return (false); reVal = /^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+(.[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+)+$/; return (reVal.test (strEmail)); } /*------------------------ 成效:检查评定是或不是是有效时间 -------------------------*/ function Check_Time (strTime) { strTime = (TrimString (strTime)); if (strTime.length == 0) return (false); reVal = /^(([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}|(0?[0-9]|1[0-1])(:([0-9]|[0-5][0-9])){0,2}s?[aApP][mM])?$/; return (reVal.test (strTime)); } /*------------------------ 功能:检查实验是或不是是有效日期特定格式 -------------------------*/ function Check_Date_1 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[/](0?[1-9]|10|11|12)[/]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*------------------------ 成效:检查评定是不是是有效日期特定格式 -------------------------*/ function Check_Date_2 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]d{3})[-](0[1-9]|10|11|12)[-]([1-2][0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*-------------------------------------- 功用:换行定行 ---------------------------------------*/ function enter( form, temp ) { if ( window.event.keyCode == 13 ) { eval( form + temp + ".focus()" ); eval( form + temp + ".select()" ); } else return (false); } /*-------------------------------------- 功用:检查字符串长度 ---------------------------------------*/ function ByteString (strVal) { nLen = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; }; return (nLen); } /*-------------------------------------- 效能:按须要截取字符串长度 ---------------------------------------*/ function SubString(strVal,nStrLen) { nLen = 0; nTemp = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; if(nLen <= nStrLen) nTemp = i; else break; }; return(strVal.substr(0,nTemp+1)); } /*------------------------ 功能:检查测验密码,密码只可以由立陶宛共和国(Republic of Lithuania卡塔 尔(阿拉伯语:قطر‎语字母、数字、减号、下划线、$、#、*、(和)构成,且第三人必须是朝鲜语字母 -------------------------*/ function Check_Pass( strPass ) { strPass = ( TrimString( strPass ) ); if (strPass.length == 0) return (false); reVal = /^[a-zA-Z]{1}[a-zA-Z0-9-_$#*()]{0,29}$/; return ( reVal.test (strPass) ); } 那是兼具的,可是是PHP的,你和睦转变一下呢~~

str=document.RegExpDemo.txtIP.value;
if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)
{
window.alert('错误的IP地址格式');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除 如 010.020.020.03 前面 的0 
var str=str.replace(/0(d)/g,"$1");
str=str.replace(/0(d)/g,"$1");
window.alert(str);

# re: 正则发布式 2006-02-28 00:59 yongsheng

^(((19)|(20))d{2})(((((-|/)0?)|0)[1-9])|((-|/)?1[0-2]))((((((-|/)0?)|0)[1-9])|((-|/)?[1-2][0-9]))|((-|/)?3[0-1]))$

2004-1-1格式

//一下是取多少的类
//Obj参数内定数量的源点(限制Table),暗许第后生可畏行为字段名称行
//GetTableData类提供MoveNext方法,参数是表的行向上或向下活动的位数,正数向下移动,负数向上.
//GetFieldData方法赢得钦点的列名的数量
//Sort_desc方法对点名的列按降序排列
//Sort_asc方法对点名的列按升序排列
//GetData方法重返字段值为特定值的数据数组,提供数据,能够在外部进行任什么地方理
//Delete方法删除当前记下,数组裁减黄金年代行
//领头化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
function GetTableData(Obj,LeftLen,RightLen){
var MyObj=document.all(Obj);
var iRow=MyObj.rows.length;
var iLen=MyObj.rows[0].cells.length;
var i,j;

# re: 正则发挥式 二零零七-03-07 14:33 yongsheng

一、验证类
1、数字证实内
1.1 整数
1.2 大于0的整数 (用于传来的ID的证实)
1.3 负整数的辨证
1.4 整数不能够抢先i马克斯
1.5 整数不可能小于iMin
2、时间类
2.1 短时间,形如 (13:04:06)
2.2 短日期,形如 (2003-12-05)
2.3 长时间,形如 (2003-12-05 13:04:06)
2.4 独有年和月。形如(2000-05,或许二零零零-5)
2.5 唯有小时和分钟,形如(12:03)
3、表单类
3.1 全数的表单的值都无法为空
3.2 多创作本框的值不能够为空。
3.3 多创作本框的值无法当先s马克斯Strleng
3.4 多创作本框的值不可能轻巧sMixStrleng
3.5 判别单选框是或不是选取。
3.6 判定复选框是不是采取.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传进度中推断文件类型
4、字符类
4.1 决断字符全体由a-Z恐怕是A-Z的字字母组成
4.2 推断字符由字母和数字构成。
4.3 推断字符由字母和数字,下划线,点号组成.且起头的只好是下划线和字母
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 决断浏览器的花色
5.2 判断ie的版本
5.3 判别客户端的分辨率

6、结合类
6.1 email的判断。
6.2 手提式有线电话机号码的验证
6.3 身份证的求证

二、功能类

1、时间与连锁控件类
1.1 日历
1.2 时间控件
1.3 万年历
1.4 展现动态展现石英钟效果(文本,如OA中时间卡塔尔
1.5 显示动态显示石英钟效果 (图像,像石英钟)
2、表单类
2.1 自动生成表单
2.2 动态增进,修正,删除下拉框中的成分
2.3 能够输入内容的下拉框
2.4 多创作本框中只可以输入i马克斯文字。如若多输入了,自动减削到i马克斯个文字(多用于短信发送)

3、打印类
3.1 打字与印刷控件
4、事件类
4.1 屏蔽右键
4.2 屏蔽全体效率键
4.3 --> 和<-- F5 F11,F9,F1
4.4 屏蔽组合键ctrl+N
5、网页设计类
5.1 接二连三滚动的文字,图片(注意是接连的,两段文字和图片中并未空白现身卡塔尔国
5.2 html编辑控件类
5.3 颜色筛选框控件
5.4 下拉菜单
5.5 两层或多等级次序的下拉菜单
5.6 仿IE菜单的开关。(效果如rongshuxa.com的领航栏目)
5.7 状态栏,title栏的动态效果(例子非常多,能够研讨一下卡塔 尔(英语:State of Qatar)
5.8 双击后,网页自动滚屏
6、树型结构。
6.1 asp+SQL版
6.2 asp+xml+sql版
6.3 java+sql或者java+sql+xml
7、无边框效果的造作
8、连动下拉框本事
9、文本排序

一、验证类
1、数字印证内
1.1 整数
/^(-|+)?d+$/.test(str)
1.2 大于0的板寸 (用于传来的ID的验证)
/^d+$/.test(str)
1.3 负整数的求证
/^-d+$/.test(str)
2、时间类
2.1 短时间,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);
if (a == null) {alert('输入的参数不是岁月格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
2.4 独有年和月。形如(二〇〇〇-05,恐怕二〇〇〇-5)
2.5 唯有小时和分钟,形如(12:03)
3、表单类
3.1 全部的表单的值都不能够为空
<input onblur="if(this.value.replace(/^s+|s+$/g,'')=='')alert('无法为空!')">
3.2 多创作本框的值不可能为空。
3.3 多创作本框的值不能够赶过s马克斯Strleng
3.4 多创作本框的值不能够轻便sMixStrleng
3.5 决断单选框是或不是采用。
3.6 判定复选框是不是接收.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传进程中判别文件类型
4、字符类
4.1 剖断字符全体由a-Z或然是A-Z的字字母组成
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
4.2 决断字符由字母和数字构成。
<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
4.3 判定字符由字母和数字,下划线,点号组成.且发轫的只好是下划线和字母
/^([a-zA-z_]{1})([w]*)$/g.test(str)
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判定浏览器的花色
window.navigator.appName
5.2 判断ie的版本
window.navigator.appVersion
5.3 判断顾客端的分辨率
window.screen.height; window.screen.width;

6、结合类
6.1 email的判断。
function ismail(mail)
{
return(new RegExp(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail));
}
6.2 手提式有线电话机号码的证实
6.3 居民身份证的表达
function isIdCardNo(num)
{
if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
else if (len == 18)
re = new RegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
else {alert("输入的数字位数不对!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的居民身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
}
return true;
}

3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>

<input type=checkbox name=All2 onclick="checkAll('mm2')">全选<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
var a = document.getElementsByName(str);
var n = a.length;
for (var i=0; i<n; i++)
a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
var e = window.event.srcElement;
var all = eval("document.hrong."+ str);
if (e.checked)
{
var a = document.getElementsByName(e.name);
all.checked = true;
for (var i=0; i<a.length; i++)
{
if (!a[i].checked){ all.checked = false; break;}
}
}
else all.checked = false;
}
</SCRIPT>

3.8 文件上传进程中判断文件类型
<input type=file onchange="alert(this.value.match(/^(.*)(.)(.{1,8})$/)[3])">

画图:
<OBJECT
id=S

height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ");
var bKey = WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\");
WScript.Echo (WshShell.RegRead ("HKCU\Software\ACME\FortuneTeller\MindReader"));
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\MindReader");
WshShell.RegDelete ("HKCU\Software\ACME\FortuneTeller\");
WshShell.RegDelete ("HKCU\Software\ACME\");
</SCRIPT>

TABLAE相关(顾客端动态增添行列卡塔尔
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
var count=0;
for (i=0; i < document.all.mytable.rows.length; i++) {
for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
document.all.mytable.rows(i).cells(j).innerText = count;
count++;
}
}
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </TH></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
</TABLE>
</BODY>
</HTML>

1.身份ID严苛注脚:

<script>
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "}

function cidInfo(sId){
var iSum=0
var info=""
if(!/^d{17}(d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:违法地带";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:违法出生之日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:不合法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

2.验证IP地址
<SCRIPT LANGUAGE="JavaScript">
function isip(s){
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
var re=s.split(".")
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

3.加sp1后还能够用的无边框窗口!!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" />
<title>Chromeless Window</title>

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

/*
This following code are designed and writen by Windy_sk <seasonx@163.net>
You can use it freely, but u must held all the copyright items!
*/

/*--- Thanks For andot Again ---*/

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.border }, onmousedown=function(){if(event.button!=2)this.style.border });background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

//Build Window
include.startDownload(CW_url, function(source){content=source});

function insert_content(){
var temp = "";
CW_Body.style.overflow = "hidden";
CW_Body.style.backgroundColor = "white";
CW_Body.style.border = "solid black 1px";
content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
temp += "<tr ondblclick="Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
temp += "<td >Chromeless Window For IE6 SP1</td>";
temp += "<td align=right>";
temp += "<span id=Help onclick="alert('Chromeless Window For IE6 SP1 - Ver 1.0\n\nCode By Windy_sk\n\nSpecial Thanks For andot')" style=""+CSStext+"font-family:System;padding-right:2px;">?</span>";
temp += "<span id=Min onclick='parent.New_CW.hide();parent.blur()' style=""+CSStext+"font-family:Webdings;" title='Minimum'>0</span>";
temp += "<span id=Max onclick="this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" style=""+CSStext+"font-family:Webdings;" title='Maximum'>1</span>";
temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=""+CSStext+"font-family:System;padding-right:2px;" title='Close'>x</span>";
temp += "</td></tr><tr><td colspan=2>";
temp += "<div id=include +CW_width+"'>";
temp += content;
temp += "</div>";
temp += "</td></tr></table>";
CW_Body.innerHTML = temp;
}

setTimeout("insert_content()",1000);

var if_max = true;
function show_CW(){
window.moveTo(10000, 10000);
if(if_max){
New_CW.show(CW_top, CW_left, CW_width, CW_height);
if(typeof(New_CW.document.all.include)!="undefined"){
New_CW.document.all.include.style.width = CW_width;
New_CW.document.all.Max.innerText = "1";
}

}else{
New_CW.show(0, 0, screen.width, screen.height);
New_CW.document.all.include.style.width = screen.width;
}
}

window.onfocus = show_CW;
window.onresize = show_CW;

// Move Window
var drag_x,drag_y,draging=false

function drag_move(e){
if (draging){
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
return false;
}
}

function drag_down(e){
if(e.button==2)return;
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
drag_x=e.clientX;
drag_y=e.clientY;
draging=true;
e.srcElement.setCapture();
}

function drag_up(e){
draging=false;
e.srcElement.releaseCapture();
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
CW_top = e.screenX-drag_x;
CW_left = e.screenY-drag_y;
}

</SCRIPT>
</HTML>

电话号码的辨证

要求:
(1)电话号码由数字、"("、")"和"-"构成
(2)电话号码为3到8位
(3)若是电话号码中含有有区号,那么区号为四位或多少人
(4)区号用"("、")"或"-"和其余部分隔开分离
(5)移动电话号码为11或10位,如若为九位,那么首先位为0
(6)九人移动电话号码的第一位和第三人为"13"
(7)十二个人移动电话号码的第肆位和第多少人为"13"
依据这几条准绳,能够与出以下正则表明式:
(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)

<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

怀有在输入非数字字符不回显的功力,即对非数字字符的输入不作反应。
function numbersonly(field,event){
var key,keychar;
if(window.event){
key = window.event.keyCode;
}
else if (event){
key = event.which;
}
else{
return true
}
keychar = String.fromCharCode(key);
if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
return true;
}
else if(("0123456789.").indexOf(keychar)>-1){
window.status = "";
return true;
}
else {
window.status = "Field excepts numbers only";
return false;
}
}

验证ip

str=document.RegExpDemo.txtIP.value;
if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)
{
window.alert('错误的IP地址格式');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除 如 010.020.020.03 前面 的0
var str=str.replace(/0(d)/g,"$1");
str=str.replace(/0(d)/g,"$1");
window.alert(str);

//一下是取多少的类
//Obj参数钦赐数量的起点(节制Table),暗中认可第风流倜傥行为字段名称行
//GetTableData类提供MoveNext方法,参数是表的行向上或向下移动的位数,正数向下活动,负数向上.
//GetFieldData方法拿到钦赐的列名的数量
//Sort_desc方法对点名的列按降序排列
//Sort_asc方法对点名的列按升序排列
//GetData方法再次回到字段值为特定值的数据数组,提供数据,能够在外界进行任什么地方理
//Delete方法删除当前记录,数组收缩风度翩翩行
//最早化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
function GetTableData(Obj,LeftLen,RightLen){
var MyObj=document.all(Obj);
var iRow=MyObj.rows.length;
var iLen=MyObj.rows[0].cells.length;
var i,j;

TableData=new Array();
for (i=0;i< iRow;i++){
TableData[i]=new Array();
for (j=0;j<iLen;j++){
TableStr=MyObj.rows(i).cells(j).innerText;
TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
TableStr=TableStr.replace(/ /gi,"").replace(/rn/ig,"");
TableData[i][j]=TableStr;
}
}

this.TableData=TableData;
this.cols=this.TableData[0].length;
this.rows=this.TableData.length;
this.rowindex=0;
}

function movenext(Step){
if (this.rowindex>=this.rows){
return
}

if (Step=="" || typeof(Step)=="undefined") {
if (this.rowindex<this.rows-1)
this.rowindex++;
return;

}
else{
if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
this.rowindex=this.rowindex + Step;
}
else
{
if (this.rowindex + Step<0){
this.rowindex= 0;
return;
}
if (this.rowindex + Step>this.rows-1){
this.rowindex= this.rows-1;
return;
}
}
}
}

function getfielddata(Field){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
}
if (colindex!=-1) {
return this.TableData[this.rowindex][colindex];
}

}

function sort_desc(){//降序
var colindex=-1;
var highindex=-1;
desc_array=new Array();
var i,j;
for (n=0; n<arguments.length; n++){
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
if ( colindex==-1 )
return;
else
{
desc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
desc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){
if (desc_array[i][colindex]<this.TableData[j][colindex]){
desc_array[i]=this.TableData[j];
highindex=j;
}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));
}
}

this.TableData=desc_array;
}
return;
}

function sort_asc(){//升序
var colindex=-1;
var highindex=-1;
var i,j;
for (n=0; n<arguments.length; n++){
asc_array=new Array();
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
if ( colindex==-1 )
return;
else
{
asc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
asc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){//寻找最小的列值
if (asc_array[i][colindex]>this.TableData[j][colindex]){
asc_array[i]=this.TableData[j];
highindex=j;

}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));

}
}

this.TableData=asc_array;
}
return;
}

function getData(Field,FieldValue){
var colindex=-1;
var i,j;

GetData=new Array();
if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
return this.TableData;
}

for(j=0;j<this.cols;j++){
if (this.TableData[0][j]==Field){
colindex=j;
}
}
if (colindex!=-1){

for(i=1;i<this.rows;i++){
if (this.TableData[i][colindex]==FieldValue){
GetData[i]=new Array();
GetData[i]=this.TableData[i];
}
}
}
return GetData;
}
function DeletE(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));
this.rows=this.TableData.length;
return;
}
function updateField(Field,FieldValue){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;
}
}
}
if (colindex!=-1) {
this.TableData[this.rowindex][colindex]=FieldValue;
}

}
function movefirst(){
this.rowindex=0;
}
function movelast(){
this.rowindex=this.rows-1;
}
function String.prototype.Trim() {return this.replace(/(^s*)|(s*$)/g,"");}
GetTableData.prototype.MoveNext = movenext;
GetTableData.prototype.GetFieldData = getfielddata;
GetTableData.prototype.Sort_asc = sort_asc;
GetTableData.prototype.Sort_desc = sort_desc;
GetTableData.prototype.GetData = getData;
GetTableData.prototype.Delete = DeletE;
GetTableData.prototype.UpdateField = updateField;
GetTableData.prototype.MoveFirst = movefirst;

切切实实的例子:

在种种文本框的onblur事件中调用校验代码,况兼每一种文本框中onKeyDown事件中写一个enter转tab函数

//回车键换为tab
function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}


TableData=new Array();
for (i=0;i< iRow;i++){
TableData[i]=new Array();
for (j=0;j<iLen;j++){
TableStr=MyObj.rows(i).cells(j).innerText;
TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
TableStr=TableStr.replace(/ /gi,"").replace(/rn/ig,"");
TableData[i][j]=TableStr;
}
}

this.TableData=TableData; 
this.cols=this.TableData[0].length;
this.rows=this.TableData.length;
this.rowindex=0;
}

function movenext(Step){
if (this.rowindex>=this.rows){
return
}

if (Step=="" || typeof(Step)=="undefined") {
if (this.rowindex<this.rows-1)
this.rowindex++;
return;

}
else{
if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
this.rowindex=this.rowindex + Step;
}
else
{
if (this.rowindex + Step<0){
this.rowindex= 0;
return;
}
if (this.rowindex + Step>this.rows-1){
this.rowindex= this.rows-1;
return;
}
}
}
}

function getfielddata(Field){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;

}
}
if (colindex!=-1) {
return this.TableData[this.rowindex][colindex];
}

}

function sort_desc(){//降序
var colindex=-1;
var highindex=-1;
desc_array=new Array();
var i,j;
for (n=0; n<arguments.length; n++){
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;

}
if ( colindex==-1 )
return;
else
{
desc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
desc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){
if (desc_array[i][colindex]<this.TableData[j][colindex]){ 
desc_array[i]=this.TableData[j]; 
highindex=j;
}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length)); 
}
}

this.TableData=desc_array;
}
return;
}

function sort_asc(){//升序
var colindex=-1;
var highindex=-1;
var i,j;
for (n=0; n<arguments.length; n++){
asc_array=new Array();
Field=arguments[arguments.length-1-n];
for (i=0;i<this.cols;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;

}
if ( colindex==-1 )
return;
else
{
asc_array[0]=this.TableData[0];
for(i=1;i<this.rows;i++){
asc_array[i]=this.TableData[1];
highindex=1;
for(j=1;j<this.TableData.length;j++){//寻觅最小的列值
if (asc_array[i][colindex]>this.TableData[j][colindex]){ 
asc_array[i]=this.TableData[j]; 
highindex=j;

}

}
if (highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length)); 

}
}

this.TableData=asc_array;
}
return;
}

function getData(Field,FieldValue){
var colindex=-1;
var i,j;

GetData=new Array();
if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
return this.TableData;
}

for(j=0;j<this.cols;j++){
if (this.TableData[0][j]==Field){
colindex=j;
}
}
if (colindex!=-1){

for(i=1;i<this.rows;i++){
if (this.TableData[i][colindex]==FieldValue){
GetData[i]=new Array();
GetData[i]=this.TableData[i]; 
}
}
}
return GetData;
}
function Delete(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length)); 
this.rows=this.TableData.length;
return;
}
function updateField(Field,FieldValue){
var colindex=-1;
var i=0;
if (typeof(Field) == "number"){
colindex=Field;
}
else
{
for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
if (this.TableData[0][i]==Field){
colindex=i;
break;

}
}
if (colindex!=-1) {
this.TableData[this.rowindex][colindex]=FieldValue;
}

}
function movefirst(){
this.rowindex=0;
}
function movelast(){
this.rowindex=this.rows-1;
}
function String.prototype.Trim() {return this.replace(/(^s*)|(s*$)/g,"");}
GetTableData.prototype.MoveNext = movenext;
GetTableData.prototype.GetFieldData = getfielddata;
GetTableData.prototype.Sort_asc = sort_asc;
GetTableData.prototype.Sort_desc = sort_desc;
GetTableData.prototype.GetData = getData;
GetTableData.prototype.Delete = Delete;
GetTableData.prototype.UpdateField = updateField;
GetTableData.prototype.MoveFirst = movefirst;

具体的事例:

在每种文本框的onblur事件中调用校验代码,并且每一个文本框中onKeyDown事件中写多少个enter转tab函数

//回车键换为tab
function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}

不常还索要自由编辑表格---
给我们三个随机编辑表格的小例子,写的有一点乱,呵呵:卡塔 尔(阿拉伯语:قطر‎

//===============================start================================

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>测量检验改善表格</TITLE>
<STYLE>
/*提醒层的样式*/
div
{
BORDER-RIGHT: #80c144 1px solid;
BORDER-TOP: #80c144 1px solid;
VISIBILITY: hidden;
BORDER-LEFT: #80c144 1px solid;
CURSOR: default;
LINE-HEIGHT: 20px;
BORDER-BOTTOM: #80c144 1px solid;
FONT-FAMILY: 宋体;
font-size:12px;
POSITION: absolute;
BACKGROUND-COLOR: #f6f6f6;
TOP:30px;
LEFT:30px;
}
/*tr的样式*/
tr
{
font-family: "宋体";
color: #000000;
background-color: #C1DBF5;
font-size: 12px
}
/*table脚注样式*/
.TrFoot
{
FONT-SIZE: 12px;
font-family:"宋体", "Verdana", "Arial";
BACKGROUND-COLOR: #6699CC;
COLOR:#FFFFFF;
height: 25;
}
/*trhead属性*/
.TrHead
{
FONT-SIZE: 13px;
font-family:"宋体", "Verdana", "Arial";
BACKGROUND-COLOR: #77AADD;
COLOR:#FFFFFF;
height: 25;
}
/*文本框样式*/
INPUT
{
BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
BORDER-RIGHT: 1px solid;
BORDER-TOP: 1px solid;
BORDER-LEFT: 1px solid;
BORDER-BOTTOM: 1px solid;
FONT-SIZE: 12px;
FONT-FAMILY: "宋体","Verdana";
color: #000000;
BACKGROUND-COLOR: #E9EFF5;
}
/*button样式*/
button
{
BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
BACKGROUND-COLOR: #D5E4F3;
CURSOR: hand;
FONT-SIZE:12px;
BORDER-RIGHT: 1px solid;
BORDER-TOP: 1px solid;
BORDER-LEFT: 1px solid;
BORDER-BOTTOM: 1px solid;
COLOR: #000000;
}
</STYLE>
</HEAD>
<BODY>
<SCRIPT language = "java script">
<!--全局变量
//标记位,值为false代表未张开一个编辑框,值为true为已经张开贰个编辑框开端编写制定
var editer_table_cell_tag = false;
//开启编辑成效标识,值为true时为允许编辑
var run_edit_flag = false;
//-->
</SCRIPT>

<SCRIPT language = "java script">
<!--
/**
* 编辑表格函数
* 单击有个别单元格能够对内部的剧情开展自由编辑
* @para tableID 为要编写制定的table的id
* @para noEdiID 为不要编辑的td的ID,比方说table的标题
* 能够写为<TD id="no_editer">自由编辑表格</TD>
* 那时该td不可编辑
*/
function editerTableCell(tableId,noEdiId)
{
var tdObject = event.srcElement;
var tObject = ((tdObject.parentNode).parentNode).parentNode;
if(tObject.id == tableId &&tdObject.id != noEdiId&&editer_table_cell_tag == false && run_edit_flag == true)
{
tdObject.innerHTML = "<input type=text id=edit_table_txt name=edit_table_txt value="+tdObject.innerText+" size='15' onKeyDown='enterToTab()'> <input type=button value=' 确定 ' onclick='certainEdit()'>";
edit_table_txt.focus();
edit_table_txt.select();
editer_table_cell_tag = true;
//纠正开关提醒音讯
editTip.innerText = "请先点鲜明开关确认改善!"; 
}
else
{
return false;
}
}

/**
* 分明改进
*/
function certainEdit()
{
var bObject = event.srcElement;
var tdObject = bObject.parentNode; 
var txtObject = tdObject.firstChild;
tdObject.innerHTML = txtObject.value;
//代表编辑框已经倒闭
editer_table_cell_tag = false;
//改善按键提醒消息
editTip.innerText = "请单击某些单元格进行编写制定!";
}

function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}

/**
* 调节是还是不是编辑
*/
function editStart()
{
if(event.srcElement.value == "起始编写制定")
{
event.srcElement.value = "编辑落成";
run_edit_flag = true;
}
else
{
//借使当前还未编辑框,则编辑成功,不然,不也许提交
//必得按明确按键后才干平常提交
if(editer_table_cell_tag == false)
{
alert("编辑成功结束!");
event.srcElement.value = "早先编写制定";
run_edit_flag = false;
}
}
}

/**
* 依据分裂的开关提供不一样的提醒消息
*/
function showTip()
{
if(event.srcElement.value == "编辑完毕")
{
editTip.style.top = event.y + 15;
editTip.style.left = event.x + 12;
editTip.style.visibility = "visible"; 
}
else
{
editTip.style.visibility = "hidden"; 

}
-->
</SCRIPT>
<TABLE id="editer_table" width="100%" align="center" 
onclick="editerTableCell('editer_table','no_editer')"> 
<TR class="TrHead">
<TD colspan="3" align="center" id="no_editer">自由编辑表格</TD> 
</TR>
<TR>
<TD width="33%">单击开端编制按键,然后点击各单元格编辑</TD>
<TD width="33%">2</TD>
<TD width="33%">3</TD>
</TR>
<TR>
<TD width="33%">4</TD>
<TD width="33%">5</TD>
<TD width="33%">6</TD>
</TR>
<TR>
<TD width="33%">one</TD>
<TD width="33%">two</TD>
<TD width="33%">three</TD>
</TR>
<TR>
<TD width="33%">four</TD>
<TD width="33%">five</TD>
<TD width="33%">six</TD>
</TR> 
<TR class="TrFoot">
<TD colspan="3" align="center" id="no_editer">
<INPUT type="button" class="bt" value="带头编制" onClick="editStart()" onMouseOver="showTip()" onMouseMove="showTip()" onMouseOut="editTip.style.visibility = 'hidden';">
</TD>
</TR> 
</TABLE>
</BODY>
<DIV id="editTip">请单击有个别单元格举行编写制定!</DIV> 
</HTML> 

你或者感兴趣的小说:

  • b/s开拓常用javaScript技巧
  • B/S情势项目中常用的javascript汇总

版权声明:本文由澳门金莎娱乐发布于关于澳门金莎,转载请注明出处:收集一些常用的正则表达式,S开发中常用javaScript技术与代码