Javascript正则表达式测试网页

2016-02-19 13:50 5 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的Javascript正则表达式测试网页,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

你平时如何测试正则表达式?直接写在大段的代码中,然后等待程序运行到那里,再用alert显示结果?或者是临时写一个页面,测试完成后把它丢掉?

你可以试一下我这个页面,虽然它很粗糙,但是测试正则表达式也足够了:))

一、说明:

1. 我的本意为交流技术.本人水平很菜.因此所贴出的代码中,会有不足之处.

2. 代码可任意修改.如果你觉得你修改过的代码比我的好,可将它贴出,我非常感谢.

3. 我对javascript的规范并不很熟悉.我的经验来自于开发.因此,若你对它有更好的见解,欢迎提出,我非常感谢.


二、测试用例:

1. 检查字符串中是否有非数字的字符:

test regex: D

test regex flags: g

test string: 1234g56t78


2. 检查字符串中是否有非0-9、a~z、A-Z、_的字符:

test regex: W

test regex flags: g

test string: i'm a pig! yes I'm!


3. 匹配字符串中的实数:

test regex: ([d]+]).([d]+)

test regex flags: g

test string: float1234.58.723c65.183


三、程序代码:

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

HTML

HEAD

TITLEJavascript regex test page/TITLE

META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GB2312"

SCRIPT

/**

* Method 测试正则表达式函数

* @param method 接收到的正则表达式类的方法

*/

function check(method)

{

// 将用户输入的正则表达式的标志转换为小写

form1.flags.value = form1.flags.value.toLowerCase();



// 如果含有不是g、i、m的字符, 则 提示并返回

if ( form1.flags.value.search(/[^g|i|m]/g) != -1 )

{

alert("flags only can be g, i, m");

return;

}



// 利用用户输入的字符串和标志建立正则表达式

var re = new RegExp(form1.regex.value, form1.flags.value);



// 获得并显示生成的正则表达式的字符串形式

destRegex.innerText = re.toString() + ' ';



// 定义 返回值

var cr;



ex = "new RegExp('" + form1.regex.value + "', '" + form1.flags.value + "').";



// 根据用户选择的方法, 进行相应的调用

switch ( method )

{

case '0': // 正则表达式的 exec 方法

cr = re.exec(form1.string.value);

ex = ex + "exec('" + form1.string.value + "')";

break;



case '1': // 正则表达式的 test 方法

cr = re.test(form1.string.value);

ex = ex + "test('" + form1.string.value + "')";

break;



case '2': // 字符串类的 match 方法

cr = form1.string.value.match(re);

ex = "'" + form1.string.value + "'.match(" + re.toString() + ")";

break;



case '3': // 字符串类的 search 方法

cr = form1.string.value.search(re);

ex = "'" + form1.string.value + "'.search(" + re.toString() + ")";

break;



case '4': // 字符串类的 replace 方法

cr = form1.string.value.replace(re);

ex = "'" + form1.string.value + "'.replace(" + re.toString() + ")";

break;



case '5': // 字符串类的 split 方法

cr = form1.string.value.split(re);

ex = "'" + form1.string.value + "'.split(" + re.toString() + ")";

break;

}



// 获得并显示表达式

expression.innerText = ex;



// 获得并显示计算结果的类型

returnType.innerText = typeof(cr);



// 定义结果

var result = '';



if ( cr != null && typeof(cr) == 'object' && cr.length != null ) // 如果计算结果是一个数组, 则取出所有数组的值

{

for ( i = 0; i cr.length; i++ )

{

result += "array[" + i + "] = '" + cr[i] + "'n";

}

}

else

if ( cr != null ) // 如果计算结果不为null, 则取出计算结果的值

{

result = cr;

}



// 获得并显示结果

matchResult.innerText = result + ' ';



// 获得并显示正则表达式的lastIndex属性

lastIndex.innerText = re.lastIndex + ' ';

}

/SCRIPT

/HEAD



BODY ALIGN=CENTER

FORM NAME="form1" METHOD="post" ACTION="" ALIGN=CENTER

TABLE BORDER="1"

TR

TD COLSPAN="2" ALIGN="CENTER"test javascript regex/TD

/TR

TR

TDtest regex:/TD

TDINPUT NAME="regex" TYPE="text"/TD

/TR

TR

TDtest regex flags:/TD

TDINPUT NAME="flags" TYPE="text" ID="flags"/TD

/TR

TR

TDtest string:/TD

TDINPUT NAME="string" TYPE="text"/TD

/TR

TR

TDselect method:/TD

TD ALIGN="CENTER"

SELECT NAME="select" onChange="check(this.value)"

OPTION VALUE="0"exec/OPTION

OPTION VALUE="1"test/OPTION

OPTION VALUE="2"match/OPTION

OPTION VALUE="3"search/OPTION

OPTION VALUE="4"replace/OPTION

OPTION VALUE="5"split/OPTION

/SELECT

INPUT VALUE='run' onclick="check(form1.select.value)" TYPE=button

/TD

/TR

TR

TDdest regex:/TD

TD STYLE="color:blue" ID=destRegex /TD

/TR

TR

TDdest expression:/TD

TD STYLE="color:blue" ID=expression /TD

TR

TR

TDreturn type:/TD

TD STYLE="color:darkred" ID=returnType /TD

/TR

TR

TDresult:/TD

TD STYLE="color:red" ID=matchResult /TD

/TR

TR

TDregex lastIndex:/TD

TD STYLE="color:red" ID=lastIndex /TD

/TR

/TABLE

/FORM

/BODY

/HTML

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1605418.html

延伸阅读
标签: Web开发
在Javascript里,有两种使用正则的方法,一是创建一个正则表达式的实例,而是使用String对象里的正则表达相关的方法. 首先是正则表达式的创建,有2种办法: var my_regex=/[a-z]+/g; var my_regex=new ("[a-z]+","g"); 方法 exec(string),对string进行正则处理,并返回匹配结果. test(string),测试string是否含有匹配结果 字符串对象中的...
标签: Web开发
JavaScript中的正则表达式解析 正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配或代替一个字符串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。要为一个单独的正则表达式添加属性,可以使用正则表达式构造函数(constructor function),无论何时被调用的预设置的正则表...
标签: Web开发
匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式...
标签: Web开发
正则表达式构造函数: new RegExp("pattern"[,"flags"]);  参数说明:  pattern -- 一个正则表达式文本  flags -- 如果存在,将是以下值:  g: 全局匹配  i: 忽略大小写  gi: 以上组合  在构造函数中,一些特殊字符需要进行转意(在特殊字符前加"\")。...
标签: Web开发
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为元字符)。模式描述在搜索文本时要匹配的一个或多个字符串。   正则表达式示例 表达式 匹配 /^\s*$/ 匹配空行。 /\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 /\s*(\S+)(\s[^]*)?[\s\S]*\s*\/\1\s*/ ...

经验教程

651

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部