• 正则表达式测试器


    <HTML>
    <HEAD>
    <TITLE>Regular Expression Test Page</TITLE>
    
    <!--- Some styles to make the page look nice --->
    <STYLE>
      BODY {font-family:arial;font-size:12px}
      INPUT {font-size:11px}
      TEXTAREA {font-size:11px}
      TH {background:#8888FF;color:white;text-align:left}
      TD {background:#CCCC99;color:black;font-size:12px}
      TD.RowA {background:#CCCC99}
      TD.RowB {background:#EEEEBB}
      .header {font-weight:bold}
    </STYLE>
    
    <SCRIPT LANGUAGE="JavaScript">
    // Turn off fields used only by replace
    function hideReplaceFields() {
      document.getElementById('RegExReplace').disabled=true;
      document.getElementById('replaceheader').disabled=true;
    }
    
    // Turn on fields used only by replace
    function showReplaceFields() {
      document.getElementById('RegExReplace').disabled=false;
      document.getElementById('replaceheader').disabled=false;
    }
    
    // Perform a find
    function processRegexFind(text, regex, flags) {
        var reg = new RegExp(regex, flags);
        var lastIdx = -1;
        var iCount = 0;
        var result = "";
        var output = '<DIV STYLE="height:200px;overflow-y:auto;550">' +
                     '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0" WIDTH="550">' +
                     '<TR><TH WIDTH="*">Match</TH><TH WIDTH="50">Position</TH><TH WIDTH="50">Length</TH></TR>';
    
        // Loop as long as have matches
        while (lastIdx != 0)
        {
            // Do it
            var mtch = reg.exec(text);
            
            // Check if got one
            if (reg.lastIndex != 0)
            {
                // Yep, increment counter
                iCount++;
    
                if (iCount % 2)
                    style = "RowA";
                else
                    style = "RowB";
                // Write output
                output += '<TR CLASS="' + style + '"><TD>' +
                            RegExp.lastMatch + "</TD><TD>" +
                            (reg.lastIndex-RegExp.lastMatch.length) + "</TD><TD>" +
                            RegExp.lastMatch.length + "</TD></TR>";
            }
            
            lastIdx = reg.lastIndex;
        }
        
        output += "</TABLE>";
    
        // Build result
        if (iCount != 0)
            result = "Matches Found: " + iCount+ "<BR>" + output;
        else
            result = "No matches";        
            
        return result;
    }
    
    // Process a replace
    function processRegexReplace(text, regexfind, regexreplace, flags) {
        // Define regex
        var re = new RegExp (regexfind, flags) ;
        // Do it
        var newstr = text.replace(re, regexreplace) ;
        // Generate output
        var result = '<DIV STYLE="height:200px;overflow-y:auto;550">' +
                     '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0" WIDTH="550">' +
                     '<TR><TH>New Text</TH></TR><TR><TD>' +
                     newstr + '</TD></TR>';
    
    return result;
    }
    
    // Process entry point
    function processRegex(form) {
        var output="";
        var flags;
        if (form.CaseSensitive.checked)
            flags = "g";
        else
            flags = "gi";
    
        // What to do?
        if (form.OperationFind.checked) {
            output=processRegexFind(form.SearchText.value, form.RegEx.value, flags);
        }
        else if (form.OperationReplace.checked) {
            output=processRegexReplace(form.SearchText.value, form.RegEx.value, form.RegExReplace.value, flags);
        }
    
        document.getElementById('output').innerHTML=output;
            
        return false;
    }
    </SCRIPT>
    </HEAD>
    
    <BODY>
    
    <FORM NAME="tester" ACTION="" METHOD="post" onSubmit="processRegex(this);return false">
        
    <TABLE BORDER="1" CELLPADDING="4" CELLSPACING="0" WIDTH="550">
      <TR>
        <TH CLASS="Dialog">Regular Expression Tester</TH>
      </TR>
      <TR> 
        <TD CLASS="Dialog"> 
    
        <!--- Text input for the regular expression itself --->
        <SPAN CLASS="header">Enter a regular expression:</SPAN><BR>
        <INPUT NAME="RegEx" TYPE="Text" SIZE="65" STYLE="font-size:13px">
    
        <!--- Checkbox to control case-sensitivity --->
        <INPUT TYPE="Checkbox" NAME="CaseSensitive" ID="CaseSensitive" VALUE="Yes">
        <LABEL FOR="CaseSensitive">Case sensitive</LABEL>
        <BR>
    
        <!--- Radio buttons to display find vs. replace --->
        <INPUT TYPE="Radio" NAME="Operation" ID="OperationFind" VALUE="find" CHECKED onClick="hideReplaceFields()">
        <LABEL FOR="OperationFind">Find</LABEL>
        <INPUT TYPE="Radio" NAME="Operation" ID="OperationReplace" VALUE="replace" onClick="showReplaceFields()">
        <LABEL FOR="OperationReplace">Replace</LABEL>
        <BR>
    
        <!--- Text input for the replace regular expression --->
        <SPAN CLASS="header" ID="replaceheader">Enter the replace regular expression:</SPAN><BR>
        <INPUT ID="RegExReplace" NAME="RegExReplace" TYPE="Text" SIZE="65" STYLE="font-size:13px">
        <BR><BR>
    
        <!--- Textarea where user can type the text to search --->  
        <SPAN CLASS="header">And the text you wish to search:</SPAN><BR>
        <TEXTAREA NAME="SearchText" WRAP="off" COLS="70" ROWS="6"></TEXTAREA>
        <BR>
    
        <!--- Submit button to start the search --->  
        <INPUT NAME="Submit" TYPE="Submit" STYLE="font-weight:bold" VALUE="Match Now"></TD>
      </TR>
    </TABLE>
      
    </FORM>
    
    <!-- Display any reults here --->
    <SPAN id="output"></SPAN> 
    
    <!-- Default to find --->
    <SCRIPT LANGUAGE="JavaScript">
    hideReplaceFields();
    </SCRIPT>
    
    </BODY>
    </HTML>

    Regular Expression Test Page

    Regular Expression Tester
    Enter a regular expression:


    Enter the replace regular expression:


    And the text you wish to search:

  • 相关阅读:
    sublime配置攻略
    Objective-C代码块语法(block)使用
    [C/C++]_[VS2010来源与UTF8中国字符串转码ANSI问题]
    Android资源管理框架(Asset Manager)简介和学习计划
    ExtJs自学教程(1):从一切API开始
    ORACLE触发特定的解释
    同TextView在不同的显示内容
    :gAudit
    IIS日志分析 MapReduce
    图片存储心得
  • 原文地址:https://www.cnblogs.com/thiaoqueen/p/7667977.html
Copyright © 2020-2023  润新知