正则
QTP 使用正则表达式有2种方式一种是在“常量值选项”对话框或“参数选项”对话框的“值”框中输入字符串的 正则表达式 语法可以定义 正则表达式 。选中“ 正则表达式 ”复选框以指示QuickTest将该值作为 正则表达式 处理。另一种是使用描述性编程所有编程描述属性值都均自动作为 正则表达式 处理。注意您可以只将 正则表达式 应用于字符串类型的值。默认情况下除了句点(.)、连字符(-)、星号(*)、插字号(^)、方括号([ ])、圆括号(())、货币符号($)、垂直线(|)、加号()、问号(?)和反斜杠(\)以外QuickTest将 正则表达式 中的所有字符作为文字处理。当一个特殊字符前面带有反斜杠(\)时QuickTest将其作为文字字符处理。如果在“常量值选项”或“参数选项”对话框的“值”框中输入一个特殊字符QuickTest会询问您是否要在每个特殊字符前面添加一个反斜杠(\)。如果单击“是”则相应的特殊字符前面就会加上一个反斜杠(\)以指示QuickTest将该字符作为文字处理。如果单击“否”QuickTest将该特殊字符作为 正则表达式 字符处理。本节描述某些更常用的选项可用于创建 正则表达式 • 使用反斜杠字符( \ )• 匹配任意单个字符( . )• 匹配列表中的任意单个字符( [xy] )• 匹配不在列表中的任意单个字符( [^xy] )• 匹配某个范围内的任意单个字符( [x-y] )• 特定字符的零次或多次匹配( * )• 特定字符的一次或多次匹配( )• 特定字符的零次或一次匹配( ? )• 对 正则表达式 进行分组( ( ) )• 匹配几个 正则表达式 中的一个表达式( | )• 在一行的开始进行匹配( ^ )• 在一行的结尾进行匹配( $ )• 匹配包括下划线在内的任一字母数字字符( \w )• 匹配任意非字母数字字符( \W )• 组合 正则表达式 操作符正则表达式 的语法规则和标记字符描述^符号匹配字符串的开头。例如^abc 与“abc xyz”匹配而不与“xyz abc”匹配$符号匹配字符串的结尾。例如abc$ 与“xyz abc”匹配而不与“abc xyz”匹配。注意如果同时使用^符号和$符号将进行精确匹配。例如^abc$ 只与“abc”匹配*符号匹配个或多个前面的字符。例如ab* 可以匹配“ab”、“abb”、“abbb”等符号匹配至少一个前面的字符。例如ab 可以匹配“abb”、“abbb”等但不匹配“ab”。?符号匹配个或个前面的字符。例如ab?c? 可以且只能匹配“abc”、“abbc”、“abcc”和“abbcc”.符号匹配除换行符以外的任何字符。例如(.) 匹配除换行符以外的所有字符串x|y匹配“x”或“y”。例如abc|xyz 可匹配“abc”或“xyz”而“ab(c|x)yz”匹配“abcyz”和“abxyz”{n}匹配恰好n次n为非负整数前面的字符。例如a{2} 可以匹配“aa“但不匹配“a”{n,}匹配至少n次n为非负整数前面的字符。例如a{3,} 匹配“aaa”、“aaaa”等但不匹配“a”和“aa”。注意a{1,}等价于aa{0,}等价于a*{m,n}匹配至少m个至多n个前面的字符。例如a{1,3} 只匹配“a”、“aa”和“aaa”。注意a{0,1}等价于a?[xyz]表示一个字符集匹配括号中字符的其中之一。^/d$ //非负整数正整数 0^[0-9]*[1-9][0-9]*$ //正整数^((-/d)|(0))$ //非正整数负整数 0^-[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]$ //由26个英文字母组成的字符串^[A-Z]$ //由26个英文字母的大写组成的字符串^[a-z]$ //由26个英文字母的小写组成的字符串^[A-Za-z0-9]$ //由数字和26个英文字母组成的字符串^/w$ //由数字、26个英文字母或者下划线组成的字符串^[/w-](/.[/w-])*[/w-](/.[/w-])$ //email地址^[a-zA-z]://(/w(-/w)*)(/.(/w(-/w)*))*(/?/S*)?$-----------------2 -----------------------java script验证表单时常用 ^-[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]$ //由26个英文字母组成的字符串^[A-Z]$ //由26个英文字母的大写组成的字符串^[a-z]$ //由26个英文字母的小写组成的字符串^[A-Za-z0-9]$ //由数字和26个英文字母组成的字符串^//w$ //由数字、26个英文字母或者下划线组成的字符串^[//w-](//.[//w-])*[//w-](//.[//w-])$ //email地址^[a-zA-z]://(//w(-//w)*)(//.(//w(-//w)*))*(//?//S*)?$ //url应用实例用户名/^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){4,19}$/无符号字符串/^[^/s]{1}[^-_/~!#/$%/^/*/./(/)/[/]/{/}/?//////]*$/Email/^/w([-.]/w)*/w([-.]//w)*/./w([-.]/w)*$/电话号码/^((/(/d{3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}$/手机号码/^((/(/d{3}/))|(/d{3}/-))?13/d{9}$/URL/^http:////[A-Za-z0-9]/.[A-Za-z0-9][///?%/-_~[/]/:!]*([^//])*$/身份证/^/d{15}(/d{2}[A-Za-z0-9])?$/货币/^/d(/./d)?$/数字/^/d$/邮政编码/^[1-9]/d{5}$/QQ/^[1-9]/d{4,8}$/整数/^[-/]?/d$/实数/^[-/]?/d(/./d)?$/英文/^[A-Za-z]$/中文/^[/u0391-/uFFE5]$/密码必须含有大写字母、小写字母、标点、数字中的至少两种。呵呵这个比较变态吧/^(([A-Z]*|[a-z]*|/d*|[-_/~!#/$%/^/*/./(/)/[/]/{/}/?//////]*)|.{0,5})$|/s/利用正则表达式限制网页表单里的文本框输入内容 用 正则表达式限制只能输入中文onkeyupvalue/value.replace(/[^/u4E00-/u9FA5]/g,’’) onbeforepasteclipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/u4E00-/u9FA5]/g,’’))用 正则表达式限制只能输入全角字符 onkeyupvalue/value.replace(/[^/uFF00-/uFFFF]/g,’’) onbeforepasteclipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/uFF00-/uFFFF]/g,’’))用 正则表达式限制只能输入数字onkeyupvalue/value.replace(/[^/d]/g,’’) onbeforepasteclipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/d]/g,’’))用 正则表达式限制只能输入数字和英文onkeyupvalue/value.replace(/[/W]/g,’’) onbeforepasteclipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/d]/g,’’))script languagejava script//去左空格;function ltrim(s){return s.replace( /^//s*/, );}//去右空格;function rtrim(s){return s.replace( ///s*$/, );}//去左右空格;function trim(s){return rtrim(ltrim(s));}//是否为空值;function IsEmpty(_str){var tmp_str trim(_str);return tmp_str.length 0;}//是否有效的Email;function IsMail(_str){var tmp_str trim(_str);var pattern /^[_a-z0-9-](.[_a-z0-9-])*[a-z0-9-](.[a-z0-9-])*$/;return pattern.test(tmp_str);}//是否有效的数字;function IsNumber(_str){var tmp_str trim(_str);var pattern /^[0-9]/;return pattern.test(tmp_str);}//是否有效的颜色值;function IsColor(color){var tempcolor;if (temp) return true;if (temp.length!7) return false;return (temp.search(///#[a-fA-F0-9]{6}/) ! -1);}//是否有效的链接;function IsURL(url){var sTemp;var btrue;sTempurl.substring(0,7);sTempsTemp.toUpperCase();if ((sTemp!http://) target_blank ... #124;|(url.length10)){bfalse;}return b;}//是否有效的手机号码;function IsMobile(_str){var tmp_str trim(_str);var pattern /13//d{9}/;return pattern.test(tmp_str);}/script----------3----------------正则表达式用于字符串处理、表单验证等场合实用高效。现将一些常用的表达式收集于此以备不时之需。匹配中文字符的正则表达式 [u4e00-u9fa5]评注匹配中文还真是个头疼的事有了这个表达式就好办了匹配双字节字符(包括汉字在内)[^x00-xff]评注可以用来计算字符串的长度一个双字节字符长度计2ASCII字符计1匹配空白行的正则表达式 s*评注可以用来删除空白行匹配HTML标记的正则表达式(S*?)[^]*.*?/1|.*? /评注网上流传的版本太糟糕上面这个也仅仅能匹配部分对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式^s*|s*$评注可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)非常有用的表达式匹配Email地址的正则表达式w([-.]w)*w([-.]w)*.w([-.]w)*评注表单验证时很实用匹配网址URL的正则表达式[a-zA-z]://[^s]*评注网上流传的版本功能很有限上面这个基本可以满足需求匹配帐号是否合法(字母开头允许5-16字节允许字母数字下划线)^[a-zA-Z][a-zA-Z0-9_]{4,15}$评注表单验证时很实用匹配国内电话号码d{3}-d{8}|d{4}-d{7}评注匹配形式如 0511-4405222 或 021-87888822匹配腾讯QQ号[1-9][0-9]{4,}评注腾讯QQ号从10000开始匹配中国邮政编码[1-9]d{5}(?!d)评注中国邮政编码为6位数字匹配身份证d{15}|d{18}评注中国的身份证为15位或18位匹配ip地址d.d.d.d评注提取ip地址时有用匹配特定数字^[1-9]d*$ //匹配正整数^-[1-9]d*$ //匹配负整数^-?[1-9]d*$ //匹配整数^[1-9]d*|0$ //匹配非负整数正整数 0^-[1-9]d*|0$ //匹配非正整数负整数 0^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0|0)$ //匹配浮点数^[1-9]d*.d*|0.d*[1-9]d*|0?.0|0$ //匹配非负浮点数正浮点数 0^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0|0$ //匹配非正浮点数负浮点数 0评注处理大量数据时有用具体应用时注意修正匹配特定字符串^[A-Za-z]$ //匹配由26个英文字母组成的字符串^[A-Z]$ //匹配由26个英文字母的大写组成的字符串^[a-z]$ //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]$ //匹配由数字和26个英文字母组成的字符串^w$ //匹配由数字、26个英文字母或者下划线组成的字符串