学习正则帮手笨狼正则练习器

<HTML>
<HEAD>
<TITLE>笨狼正则练习器_www.jb51.net我们 </TITLE>
<style>
body 
{
    font-size:12;
    BACKGROUND: #DADADA;
    margin-left:20;
}

#blockORG
{

font-family:Verdana;
    font-size:12px;    
    overflow:scroll;
    height:300;

}
#fileORG
{
    width:400;
}
#blockReg
{
    font-family:Verdana;
    font-size:12px;
}    
#showMe
{    
    font-family:Verdana;
    font-size:12px;    
    height:200;
    overflow:visible;
}    
#replaceVar
{    
    font-family:Verdana;
    font-size:12px;
    top:341;    
}
#isScriptDIV
{
    position:absolute;    
    top:361;    
    overflow-x:visible;    
}

</style>
</HEAD>

<BODY>
<INPUT type="file" id="fileORG" onchange = "vbs:showORG"/>
<button  onclick = "vbs:showORG" >载入</button>
<input type="checkbox" id="Imode" checked />忽略大小写
<input type="checkbox" id="Gmode" checked />全局 
<button  onclick = "vbs:back" >清空</button>
<button  onclick = "vbs:saveFile" >保存</button><br/>
<textArea id="blockORG"></textArea><br/>
表达式:<input id="blockReg" /><br/>
替换为:<input id="replaceVar" /><input type="hidden" id="jsvalue" />
<div id="isScriptDIV">
    <button  id="normal" onclick="vbs:gogogo">普通替换</button>
    <button  id="isVBS" onclick="vbs:gogogo" >vbs表达式替换</button>
    <button  id="isJS"  onclick="vbs:gogogo">js表达式替换</button>
</div>
<textArea id="showMe" ></textArea>
<SCRIPT LANGUAGE="vbScript"> 
'设置窗体尺寸
    window.resizeTo window.screen.availWidth,window.screen.availHeight 
    window.moveTo 0,0  
    blockORG.style.width = cint(window.screen.availWidth * 0.94)
    blockReg.style.width = px2Int(blockORG.style.width )-100

replaceVar.style.width = px2Int(blockReg.style.width)-400

isScriptDIV.style.left =   px2Int(replaceVar.style.width) +100
    showMe.style.width = blockORG.style.width

dim fso ,Re 
    set Re = new RegExp 
    set fso = createObject("Scripting.FileSystemObject")
    dim replaceStr

dim thisFileDir'定义本文件绝对路径
    dim thisFileName'定义本文件名
    dim thisFileFolder'定义本文件夹路径

thisFileDir = replace(window.location.href,"file:///","")
    thisFileDir = unescape(replace(thisFileDir,"/","\"))     
    thisFileName = LastOne(thisFileDir,"\")    
    thisFileFolder=getFolderDir(thisFileDir)

sub showORG()
'在文本框内加载文件    
dim f,ts,s
    if fso.FileExists(fileORG.value)  then        
        set f = fso.GetFile(fileORG.value)
        set ts = f.OpenAsTextStream(1)
        s=""
        if not ts.AtEndOfStream then            
            s = ts.ReadAll 
        end if
        ts.Close     
        blockORG.value = s            
    end if            
end sub

Function LastOne(Str,splitStr)
'输入字符和分隔符,得到最后一部分
    LastOne = right(Str,len(Str)-InStrRev(Str,splitStr))
End Function

function getFolderDir(fullDir)
'输入得到全路径,得到文件夹路径
    s=LastOne(fullDir,"\")
    getFolderDir = left(fullDir,len(fullDir)-len(s))
end function

function px2Int(px)
    px2Int = cint(replace(px,"px",""))
end function

sub gogogo()    
    Re.IgnoreCase = Imode.checked
    Re.Global =   Gmode.checked
    Re.Pattern = blockReg.value
    replaceStr = replaceVar.value
    select case window.event.srcElement.id    
    case "isVBS"
        replaceStr = eval(replaceStr)
    case "isJS"     
        window.execScript "jsvalue.value=eval(replaceVar.value);","javaScript" 
        replaceStr = jsvalue.value    
    end select
    showMe.value = Re.Replace(blockORG.value,replaceStr)
end sub

sub back
    showMe.value = ""
end sub

sub saveFile        
    if fso.FileExists(fileORG.value)  then        
        set f = fso.GetFile(fileORG.value)
        f.copy fileORG.value & makeRand() & ".bak"'创建备份
        set ts = f.OpenAsTextStream(2)
        ts.write showMe.value
        ts.Close
        blockORG.value = showMe.value    
    else
        set ts = fso.OpenTextFile(thisFileFolder & makeRand() & ".txt",2,true)
        ts.write showMe.value
        ts.Close
        blockORG.value = showMe.value
    end if    
end sub

function makeRand()
    dim resault
    resault = mid(cstr(now()),3)
    resault =replace(resault,":","")
    resault =replace(resault,"-","")
    resault =replace(resault," ","")
    makeRand = resault
end function

</SCRIPT>
</BODY>
</HTML>
笨狼正则练习器.hta

(0)

相关推荐

  • 学习正则帮手笨狼正则练习器

    <HTML> <HEAD> <TITLE>笨狼正则练习器_www.jb51.net我们 </TITLE> <style> body  {     font-size:12;     BACKGROUND: #DADADA;     margin-left:20; } #blockORG { font-family:Verdana;     font-size:12px;         overflow:scroll;     height:30

  • hta实现的笨狼XSLT练习器

    <HTML> <HEAD> <TITLE>笨狼XSLT练习器 _我们</TITLE> <style> body  {     font-size:12;     BACKGROUND: #DADADA;     margin-left:20; } #blockXML { font-family:Verdana;     font-size:12px;         overflow:scroll;     height:400;     top

  • delphi 判断字符串是否包含汉字,正则版与非正则版实现

    代码一 //正则版 uses RegularExpressions; //相关单元 function IsChineseStr(s: String): Boolean; const pattern ='[\x{4E00}-\x{9FA5}]'; //测试用的表达式 begin Result:=false; if TRegEx.IsMatch(s, pattern) then begin Result:=True; end; end; //非正则版 function isChina(S: stri

  • hta作品笨狼CSDN爬虫

    <html> <head> <title>笨狼CSDN爬虫</title> <style> body {     font-size:12;     margin:20;     background-color:#eeeeee;     } div {     font-size:12;     border:1 solid navy;     margin-left:20;     } input.num { width:20;     ov

  • hta实现的笨狼树状节点查看器

    <html> <head> <style> table {     border-collapse: collapse;     border-width: 4;      border-style: double;      border-color:#15336F;     font-size:12px; } body {     font-size:12px; } div {     width:100%;     height:9;      border-st

  • 学习正则!超基础简单例子

    问题是这样的,某个情况下要给:http://jb51.net?a=1 这类url地址追加参数变为:http://jb51.net?a=1&b=2 但是怎么知道已经存在相同参数名呢,例如有这种情况:http://jb51.net?a=1&a=2 这个虽然不会有什么大错误,但是地址栏这样看起来很不好.那怎么办呢?用正则解决吧(本来我想用php的字符串处理解决的,但是后来觉得要学一下正则了就用正则做吧) 以下是我用于返回上一页的后台处理方法 复制代码 代码如下: function _goBack

  • js正则学习小记之匹配字符串字面量

    今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走"; 比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可. PS: 白色截图是 chrome 34 控制台中运行的结果,深灰色是 su

  • 浅谈js正则字面量//与new RegExp的执行效率

    前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化篇>. 里面讲到了优化正则起到提升性能的问题,但是能提升多少呢? 于是我去测试了,发现TMD几乎微乎其微,我用1千字符串进行100万次匹配测试,优不优化根本没区别. 这不科学,我白看了这么多天正则,上天这是在玩弄我么. 突然我想到了 compile 方法,然后去测试了下,奇迹出现了,果然优化过的快了不少. 但这是为什么呢? 于是我翻阅资料,在 MDN 上找到了 Reg

  • JS正则表达式一条龙讲解(从原理和语法到JS正则)

    正则啊,就像一座灯塔,当你在字符串的海洋不知所措的时候,总能给你一点思路:正则啊,就像一台验钞机,在你不知道用户提交的钞票真假的时候,总能帮你一眼识别:正则啊,就像一个手电筒,在你需要找什么玩意的时候,总能帮你get你要的东西... -- 节选自 Stinson 同学的语文排比句练习<正则> 欣赏了一段文学节选后,我们正式来梳理一遍JS中的正则,本文的首要目的是,防止我经常忘记正则的一些用法,故梳理和写下来加强熟练度和用作参考,次要目的是与君共勉,如有纰漏,请不吝赐教,良辰谢过. 本文既然取题

  • 正则基础之 神奇的转义

    1 概述这或许会是一个让人迷惑,甚至感到混乱的话题,但也正因为如此,才有了讨论的必要.在正则中,一些具有特殊意义的字符,或是字符序列,被称作元字符,如"?"表示被修饰的子表达式匹配0次或1次,"(?i)"表示忽略大小写的匹配模式等等.而当这些元字符被要求匹配其本身时,就要进行转义处理了.不同的语言或应用场景下,正则定义方式.元字符出现的位置不同,转义的方式也是林林总总,不一而同.2 .NET正则中的字符转义2.1     .NET正则中的转义符绝大多数语言中,&qu

随机推荐