Script

本类阅读TOP10

·一个简单的javascript菜单
·网站流量统计代码
·可编辑的 HTML JavaScript 表格控件 DataGrid II
·JavaScript通用库(一)
·在网页中控制wmplayer播放器
·层遇到select框时
·TYPEING TEST ON LINE 在线打字测试 Free Software Javascript (aiiiq)
·javascript表单之间的数据传递!
·让网页自动穿上外套
·搜索gb2312汉字在网上的频率

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Javascript正则表达式测试网页

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

 

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

 

一、说明:

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

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

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

 

二、测试用例:

 

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

test regex: \D

test regex flags: g

test string: 1234g56t78

 

2. 检查字符串中是否有非0-9a~zA-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>

<TITLE>Javascript 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();

       

        // 如果含有不是gim的字符, 提示并返回

        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>

   <TD>test regex:</TD>

   <TD><INPUT NAME="regex" TYPE="text"></TD>

  </TR>

  <TR>

   <TD>test regex flags:</TD>

   <TD><INPUT NAME="flags" TYPE="text" ID="flags"></TD>

  </TR>

  <TR>

   <TD>test string:</TD>

   <TD><INPUT NAME="string" TYPE="text"></TD>

  </TR>

  <TR>

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

   <TD>dest regex:</TD>

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

  </TR>

  <TR>

   <TD>dest expression:</TD>

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

   <TR>

  <TR>

   <TD>return type:</TD>

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

  </TR>

  <TR>

   <TD>result:</TD>

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

  </TR>

  <TR>

   <TD>regex lastIndex:</TD>

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

  </TR>

 </TABLE>

</FORM>

</BODY>

</HTML>




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有