易截截图软件、单文件、免安装、纯绿色、仅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 in 10 Steps or Less

没有按别人的推荐,学什么圣经类的js书,而是随便挑了本《JavaScript in 10 Steps or Less》。
花了3个小时,看了30个task。
讲的非常浅显详细。虽然是E文,但很浅显易懂。
task31:
Calling Functions from Tags
One of the benefits of JavaScript is to be able to tie interactivity to elements of the HTML page. ......

JavaScript 中使用 replace 达到 replaceAll的效果

JavaScript 中使用 replace 达到 replaceAll的效果
方法: string.replace(new RegExp(oldString,"gm"),newString))
gm     g=global, m=multiLine  ,  大致上方法就是这样的,可以实现替换全部指定字串
另一个简单的验证JS的方法:
在浏览器地址栏输入
javascript:alert("abcabc ......

用JavaScript获取Gridview中某个触发事件控件的ID

今天在开发过程中遇到要用Js代码获取GridView中某个触发事件控件的ID,本人过去没有这样做过,这个问题在那时把我给难住了。
在网上找了好半天,终于是功夫不负有心人,答案还是让我给找到了!这也要感谢那个回帖的好心人。
解决方法就是:window.event.srcElement.id ,它可以当前获得触发事件控件的ID,控件知道了 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号