您的位置:首页 > 其它

用正则表达式检验是否输入日期时间是有效&&&&&& execCommand指令集

2005-09-19 17:56 513 查看
function check(str){
var reg = /^(d+)-(d{1,2})-(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
if(d.getHours()!=r[4])return false;
if(d.getMinutes()!=r[5])return false;
if(d.getSeconds()!=r[6])return false;
return true;
}
</script>
1.var reg = /^(d+)-(d{1,2})-(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
建立正则表达式:
d:表示数字,即数字0-9
{1,2}:表示匹配1-2次
2.var r = str.match(reg);
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。
3.if(r==null)return false;
如果 match 方法没有找到匹配,返回 null,则表示检验不通过,return false;
4.r[2]=r[2]-1;
r[2]表示所匹配数组的第一个元素,即月份( 1 月至 12 月),而Date对象中的月份是从 0 到 11 之间的整数。
5.var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]);
创建一个Date对象,使之和当前所输入字符串表达的日期相同。
然后通过判断获取的年月日时分秒是否与输入字符串相对应的数是否相同。如果不同,表示检验不通过,return false;
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
if(d.getHours()!=r[4])return false;
if(d.getMinutes()!=r[5])return false;
if(d.getSeconds()!=r[6])return false;
6.return true;
当输入字符串能通过上述各检验,说明表达正确的时间,检验通过,return true;

在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏
灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

使用正则表达式,就可以:
1.测试字符串的某个模式。例如,对输入字符串进行测试,看该字符串是否存在一个电话号码模式或其他模式。这称为数据有效性验证。
2.替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看
在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文
件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集,具有丰富
的字符串处理功能。与 C 类似的 Jscript 则没有这一能力。正则表达式给 JScript 的字符串处理能力带来了明显改善。不过,可能还是在
VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。

创建:
一个文本格式或正则表达式构造函数
文本格式: /pattern/flags
正则表达式构造函数: new RegExp("pattern"[,"flags"]);
参数说明:
pattern -- 一个正则表达式文本
flags -- 如果存在,将是以下值:
g: 全局匹配
i: 忽略大小写
gi: 以上组合
[注意] 文本格式的参数不用引号,而在用构造函数时的参数需要引号。如:/ab+c/i new RegExp("ab+c","i")是实现一样的功能。
在构造函数中,一些特殊字符需要进行转意(在特殊字符前加"")。如:re = new RegExp("\w+")

字符 描述
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'n' 匹配一个换行符。序列 '\' 匹配 "" 而 "(" 则匹配 "("。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 'n' 或 'r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 'n' 或 'r' 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。

{n} n 是一个非负整数。匹配确定的 n 次。例如,'o' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
. 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '[.n]' 的模式。

(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在 JScript 中则使用 … 属性。要匹配圆括号字符,请使用 '(' 或 ')'。

(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
[xyz] 字符集合。匹配所包含的任意一个字符。例如,'[abc]' 可以匹配 "plain" 中的 'a'。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如,'[^abc]' 可以匹配 "plain" 中的'p'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。

b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'erb' 可以匹配 "never" 中的 'er',但不能匹配 "verb" 中的 'er'。

B 匹配非单词边界。'erB' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

cx 匹配由 x 指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
d 匹配一个数字字符。等价于 [0-9]。
D 匹配一个非数字字符。等价于 [^0-9]。
f 匹配一个换页符。等价于 x0c 和 cL。
n 匹配一个换行符。等价于 x0a 和 cJ。
r 匹配一个回车符。等价于 x0d 和 cM。
s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。
S 匹配任何非空白字符。等价于 [^ fnrtv]。

t 匹配一个制表符。等价于 x09 和 cI。

v 匹配一个垂直制表符。等价于 x0b 和 cK。
w 匹配包括下划线的任何单词字符。等价于 '[A-Za-z0-9_]'。
W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'x41' 匹配 "A"。'x041' 则等价于 'x04' & "1"。正则表达式中可以使用 ASCII 编码。.
num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)1' 匹配两个连续的相同字符。
n 标识一个八进制转义值或一个向后引用。如果 n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
nm 标识一个八进制转义值或一个向后引用。如果 nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 nm 将匹配八进制转义值 nm。
nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, u00A9 匹配版权符号 (©)。

<HEAD>
<SCRIPT LANGUAGE="JScript">
/*
*該function執行copy指令
*/
function fn_doufucopy() {
edit.select();
document.execCommand('Copy');
}
/*
*該function執行paste指令
*/
function fn_doufupaste() {
tt.focus();
document.execCommand('paste');
}
__>
</SCRIPT>
</head>
<body>
<input id=edit value=范例><br>
<button onclick=fn_doufucopy()>Copy</button>
<button onclick=fn_doufupaste()>paste</button><br>
<textarea id=tt rows=10 cols=50></textarea>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>execCommand整理</title>
<script language=javascript>
/*
*該function用來創建一個超鏈結
*/
function fn_creatlink()
{
document.execCommand('CreateLink',true,'true');//彈出一個對話框輸入URL
//document.execCommand('CreateLink',false,'http://www.51js.com');
}
/*
*該function用來將選中的區塊設為指定的背景色
*/
function fn_change_backcolor()
{
document.execCommand('BackColor',true,'#FFbbDD');//true或false都可以
}
/*
*該function用來將選中的區塊設為指定的前景色,改變選中區塊的字體大小,改變字體,字體變粗變斜
*/
function fn_change_forecolor()
{
//指定前景色
document.execCommand('ForeColor',false,'#BBDDCC');//true或false都可以
//指定背景色
document.execCommand('FontSize',false,7); //true或false都可以
//字體必須是系統支持的字體
document.execCommand('FontName',false,'標楷體'); //true或false都可以
//字體變粗
document.execCommand('Bold');
//變斜體
document.execCommand('Italic');
}
/*
*該function用來將選中的區塊加上不同的線條
*/
function fn_change_selection()
{
//將選中的文字加下劃線
document.execCommand('Underline');
//在選中的文字上劃粗線
document.execCommand('StrikeThrough');
//將選中的部分文字變細
document.execCommand('SuperScript');
//將選中區塊的下劃線取消掉
document.execCommand('Underline');
}
/*
*該function用來將選中的區塊排成不同的格式
*/
function fn_format()
{
//有序列排列
document.execCommand('InsertOrderedList');
//實心無序列排列
document.execCommand('InsertUnorderedList');
//空心無序列排列
document.execCommand('Indent');
}
/*
*該function用來將選中的區塊剪下或是刪除掉
*/
function fn_CutOrDel()
{
//刪除選中的區塊
//document.execCommand('Delete');
//剪下選中的區塊
document.execCommand('Cut');
}
/*
*該function用來將選中的區塊重設為一個相應的物件
*/
function fn_InsObj()
{
/*
******************************************
* 以下指令都是為選中的區塊重設一個object;
* 如沒有特殊說明,第二個參數true或false是一樣的;
* 參數三表示為該object的id;
* 可以用在javascript中通過其指定的id來控制它
******************************************
*/
/*重設為一個button(InsertButton和InsertInputButtong一樣,
隻不前者是button,後者是input)*/
/*document.execCommand('InsertButton',false,"aa"); //true或false無效
document.all.aa.value="風舞九天";*/
//重設為一個fieldset
/*document.execCommand('InsertFieldSet',true,"aa");
document.all.aa.innerText="刀劍如夢";*/
//插入一個水平線
//document.execCommand('InsertHorizontalRule',true,"aa");
//插入一個iframe
//document.execCommand('InsertIFrame',true,"aa");
//插入一個InsertImage,設為true時需要圖片,false時不需圖片
//document.execCommand('InsertImage',false,"aa");
//插入一個checkbox
//document.execCommand('InsertInputCheckbox',true,"aa");
//插入一個file類型的object
//document.execCommand('InsertInputFileUpload',false,"aa");
//插入一個hidden
/*document.execCommand('InsertInputHidden',false,"aa");
alert(document.all.aa.id);*/
//插入一個InputImage
/*document.execCommand('InsertInputImage',false,"aa");
document.all.aa.src="F-a10.gif";*/
//插入一個Password
//document.execCommand('InsertInputPassword',true,"aa");
//插入一個Radio
//document.execCommand('InsertInputRadio',false,"aa");
//插入一個Reset
//document.execCommand('InsertInputReset',true,"aa");
//插入一個Submit
//document.execCommand('InsertInputSubmit',false,"aa");
//插入一個input text
//document.execCommand('InsertInputText',false,"aa");
//插入一個textarea
//document.execCommand('InsertTextArea',true,"aa");
//插入一個 select list box
//document.execCommand('InsertSelectListbox',false,"aa");
//插入一個single select
document.execCommand('InsertSelectDropdown',true,"aa");
//插入一個line break(硬回車??)
//document.execCommand('InsertParagraph');
//插入一個marquee
/*document.execCommand('InsertMarquee',true,"aa");
document.all.aa.innerText="bbbbb";*/
//用於取消選中的陰影部分
//document.execCommand('Unselect');
//選中頁面上的所有元素
//document.execCommand('SelectAll');
}
/*
*該function用來將頁面保存為一個文件
*/
function fn_save()
{
//第二個參數為欲保存的文件名
document.execCommand('SaveAs','mycodes.txt');
//打印整個頁面
//document.execCommand('print');
}
</script>
</head>
<body>
浮沉聚散變化又再,但是總可卷土重來.<br>
天若有情天亦老,人間正道是滄桑.<br>
都怪我,太執著,卻也等不到花開葉落.<br>
<input type=button value="創建CreateLink" onclick=fn_creatlink()><br>
<input type=button value="改變文字背景色" onclick=fn_change_backcolor()><br>
<input type=button value="改變文字前景色" onclick=fn_change_forecolor()><br>
<input type=button value="給文字加線條" onclick=fn_change_selection()><br>
<input type=button value="改變文字的排列" onclick=fn_format()><br>
<input type=button value="刪除或剪下選中的部分" onclick=fn_CutOrDel()><br>
<input type=button value="插入Object" onclick=fn_InsObj()><br>
<input type=button value="保存或打印文件" onclick=fn_save()><br>
<input type=button value="測試Refresh屬性" onclick="document.execCommand('Refresh')">
</body>
</html>

2D-Position 允许通过拖曳移动绝对定位的对象。
AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。
BackColor 设置或获取当前选中区的背景颜色。
BlockDirLTR 目前尚未支持。
BlockDirRTL 目前尚未支持。
Bold 切换当前选中区的粗体显示与否。
BrowseMode 目前尚未支持。
Copy 将当前选中区复制到剪贴板。
CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。
CreateLink 在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。
Cut 将当前选中区复制到剪贴板并删除之。
Delete 删除当前选中区。
DirLTR 目前尚未支持。
DirRTL 目前尚未支持。
EditMode 目前尚未支持。
FontName 设置或获取当前选中区的字体。
FontSize 设置或获取当前选中区的字体大小。
ForeColor 设置或获取当前选中区的前景(文本)颜色。
FormatBlock 设置当前块格式化标签。
Indent 增加选中文本的缩进。
InlineDirLTR 目前尚未支持。
InlineDirRTL 目前尚未支持。
InsertButton 用按钮控件覆盖当前选中区。
InsertFieldset 用方框覆盖当前选中区。
InsertHorizontalRule 用水平线覆盖当前选中区。
InsertIFrame 用内嵌框架覆盖当前选中区。
InsertImage 用图像覆盖当前选中区。
InsertInputButton 用按钮控件覆盖当前选中区。
InsertInputCheckbox 用复选框控件覆盖当前选中区。
InsertInputFileUpload 用文件上载控件覆盖当前选中区。
InsertInputHidden 插入隐藏控件覆盖当前选中区。
InsertInputImage 用图像控件覆盖当前选中区。
InsertInputPassword 用密码控件覆盖当前选中区。
InsertInputRadio 用单选钮控件覆盖当前选中区。
InsertInputReset 用重置控件覆盖当前选中区。
InsertInputSubmit 用提交控件覆盖当前选中区。
InsertInputText 用文本控件覆盖当前选中区。
InsertMarquee 用空字幕覆盖当前选中区。
InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。
InsertParagraph 用换行覆盖当前选中区。
InsertSelectDropdown 用下拉框控件覆盖当前选中区。
InsertSelectListbox 用列表框控件覆盖当前选中区。
InsertTextArea 用多行文本输入控件覆盖当前选中区。
InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。
Italic 切换当前选中区斜体显示与否。
JustifyCenter 将当前选中区在所在格式化块置中。
JustifyFull 目前尚未支持。
JustifyLeft 将当前选中区所在格式化块左对齐。
JustifyNone 目前尚未支持。
JustifyRight 将当前选中区所在格式化块右对齐。
LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观,而不是只在移动或缩放完成后更新。
MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。
Open 打开。
Outdent 减少选中区所在格式化块的缩进。
OverWrite 切换文本状态的插入和覆盖。
Paste 用剪贴板内容覆盖当前选中区。
PlayImage 目前尚未支持。
Print 打开打印对话框以便用户可以打印当前页。
Redo 重做。
Refresh 刷新当前文档。
RemoveFormat 从当前选中区中删除格式化标签。
RemoveParaFormat 目前尚未支持。
SaveAs 将当前 Web 页面保存为文件。
SelectAll 选中整个文档。
SizeToControl 目前尚未支持。
SizeToControlHeight 目前尚未支持。
SizeToControlWidth 目前尚未支持。
Stop 停止。
StopImage 目前尚未支持。
StrikeThrough 目前尚未支持。
Subscript 目前尚未支持。
Superscript 目前尚未支持。
UnBookmark 从当前选中区中删除全部书签。
Underline 切换当前选中区的下划线显示与否。
Undo 撤消。
Unlink 从当前选中区中删除全部超级链接。
Unselect 清除当前选中区的选中状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: