易截截图软件、单文件、免安装、纯绿色、仅160KB

简单的正则表达式 JavaScript翻译器

最近,我参考,根据正则表达式构建DFA(确定的有穷自动机)的技术,完成了一个从正则表达式到JavaScript的翻译器。
翻译器是针对chrome和firefox设计的,没有在其他浏览器中测试过。
Google Code上的源代码:http://code.google.com/p/nephotools/source/browse/#svn/trunk/regexpQuery
regexpQuery.js中定义了regexpQuery()方法,main.html提供了一个程序的UI。
翻译器根据正则表达式生成一个函数,翻译器接受的参数有
String name:生成的函数的名称
String regexp:需要翻译的正则表达式
Boolean ignoreSpace:是否忽略正则表达式中的空白字符
Boolean backward:此参数为true时生成的函数逆向匹配正则表达式
翻译器的返回值就是生成的代码
生成的函数接受2个参数:
String s:进行匹配的字符串
Number o(可选):匹配的起始位置,逆向匹配时,默认值为s的长度-1,否则为0
返回匹配的字符串
翻译器支持的正则表达式语法在main.html的表格中(来自MDC)
生成的函数进行匹配时不进行查找,也就是函数找到的字符串一定是s的前缀或后缀
翻译器目前也还不支持空串(预计将来会支持)
翻译器由三部分组成,词法分析和语法分析器生成一棵语法树,第二部分计算nullable,firstpos,lastpos,followpos(或prevpos)的值,
最后是代码生成器生成代码。
翻译器的最基本元素是字符类,由一个长度为偶数的一维数组表示,每两个相邻的元素表示一个字符编码的区间,整个数组表示所有区间的并集。
字符类是语法树中的所有叶子节点,并且DFA的状态也是字符类组成的数组
翻译器中包含了三个基本的操作函数,addCharacterClass,removeCharacterClass和splitCharacterClass
前两者完成的功能相当于并集和补集,而splitCharacterClass将,新的区间除去它与已有区间的并集的部分,加入字符类


相关文档:

javascript开发系列(运算符)

今天在补习javascript中。遇到几个相对陌生的运算符,特别在此写下来。
1、三元运算符?:,这是js中唯一一个三元运算符(这和C#中的一样),用法如下
   var x=1;
  var y=3;
  (x>y)?(x-y):(y-x);
2、typeof运算符
  typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。 ......

JavaScript 三级级联菜单

< HTML >
< HEAD >
< TITLE > 合同申请 </ TITLE >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >
< SCRIPT  LANGUAGE  = JavaScript >
/* * Define object Dsy 构造器
fieldValues&nbs ......

Javascript知识精华

<script    language="JavaScript" type="text/javascript" >
<!--
         .
//-->
</script>
.language已经被弃用,但为了兼容旧版本浏览器而保留,所以建议同时使用这language和type两个
.<!---     //-->& ......

JavaScript高级程序设计学习笔记6:正则表达式

一、正则表达式通过RegExp类实现,RegExp对象的构造函数可以带一个或两个参数。第一个参数(或只有一个参数)是描述需要进行匹配的模式字符串,如果还有第二个参数,这个参数则指定了额外的处理指令。
定义正则表达式:
1、只匹配字符串中出现的第一个单词"cat";区分大小写
var reCat = new RegExp("cat&q ......

asp.net页面实现回车点击按钮JavaScript实现

回车点击按钮
只需在.aspx页面代码中加入一段JavaScript即可:
<script type="text/javascript" language="javascript">  
      document.onkeydown   =   Check;  
      function   Check(){ &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号