随笔 - 14, 文章 - 39, 评论 - 17, 引用 - 0
数据加载中……

测试正则表达式的工具(来自网上,稍作修改)

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

<HTML>

<HEAD>

<TITLE>测试正则表达式的网页</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GB2312">
<link rel="stylesheet" type="text/css" href="css/css.css">

<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>

<h3>测试正则表达式</h3>

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

<TABLE BORDER="1" width="772" align="center">

<TR>

<TD COLSPAN="2" ALIGN="CENTER" width="762"><B>测试正则表达式</B></TD>

</TR>

<TR>

<TD width="147">正则表达式字符串:</TD>

<TD width="609"><INPUT NAME="regex" TYPE="text" size="75"></TD>

</TR>

<TR>

<TD width="147">正则表达式参数:</TD>

<TD width="609"><INPUT NAME="flags" TYPE="text" ID="flags" size="20" value="g"></TD>

</TR>

<TR>

<TD width="147">测试用的字符串:</TD>

<TD width="609"><INPUT NAME="string" TYPE="text" size="75"></TD>

</TR>

<TR>

<TD width="147">选择测试方法:</TD>

<TD ALIGN="CENTER" width="609">

<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='祝你好运' onclick="check(form1.select.value)" TYPE=button>

</TD>

</TR>

<TR>

<TD width="147">生成的表达式:</TD>

<TD STYLE="color: blue" ID=destRegex width="609">&nbsp;</TD>

</TR>

<TR>

<TD width="147">生成的JS表达式:</TD> 

<TD STYLE="color: blue" ID=expression width="609">&nbsp;</TD>

<TR>

<TD width="147">返回类型:</TD> 

<TD STYLE="color: darkred" ID=returnType width="609">&nbsp;</TD>

</TR>

<TR>

<TD width="147">结果:</TD>

<TD STYLE="color: red" ID=matchResult width="609">&nbsp;</TD>

</TR>

<TR>

<TD width="147">regex lastIndex:</TD> 

<TD STYLE="color: red" ID=lastIndex width="609">&nbsp;</TD>

</TR>

</TABLE>

</FORM>

</BODY>

</HTML>



posted on 2006-12-08 15:31 mlw2000 阅读(291) 评论(0)  编辑  收藏 所属分类: JavaScript


只有注册用户登录后才能发表评论。


网站导航: