小编Ser*_*rca的帖子

在哪里可以找到多种语言的正则表达式的单元测试?

我正在http://www.debuggex.com上建立一个正则表达式帮手.我想要显示的细节数量要求我编写自己的解析器和匹配器.

为了确保我的解析器和匹配器正常工作,我已经为正则表达式的Javascript风格编写了自己的单元测试,但这些仅涵盖我所知道的边缘情况.我想使用标准测试套件,最近指向http://hg.ecmascript.org/tests/test262/summary,我将使用它.

我的问题是,我在哪里可以找到其他正则表达式的测试套件?我想在将来支持其他口味.我无法通过谷歌搜索找到任何东西("测试"污染了正则表达式测试人员的结果).我正在寻找语言python,php,perl,java,ruby.net的测试套件.

.net javascript php java regex

77
推荐指数
2
解决办法
4909
查看次数

将确切的innerHTML恢复为DOM

我想保存DOM的html字符串,然后将其恢复为完全相同.代码看起来像这样:

var stringified = document.documentElement.innerHTML
// later, after serializing and deserializing
document.documentElement.innerHTML = stringified
Run Code Online (Sandbox Code Playgroud)

这在一切都很完美时起作用,但是当DOM不符合w3c时,就会出现问题.第一行工作正常,stringified完全匹配DOM.但是当我从(非w3c兼容)恢复时stringified,浏览器会做一些魔术并且生成的DOM与最初的DOM不同.

例如,如果我的原始DOM看起来像

<p><div></div></p>
Run Code Online (Sandbox Code Playgroud)

那么最终的DOM会是这样的

<p></p><div></div><p></p>
Run Code Online (Sandbox Code Playgroud)

因为div元素不允许在p元素内部.有没有什么方法可以让浏览器使用与页面加载相同的html解析并按原样接受损坏的html?

为什么html首先被破坏了?DOM不受我控制.

这是一个显示行为http://jsfiddle.net/b2x7rnfm/5/的jsfiddle .打开你的控制台.

<body>
    <div id="asdf"><p id="outer"></p></div>
    <script type="text/javascript">
        var insert = document.createElement('div');
        var text = document.createTextNode('ladygaga');
        insert.appendChild(text);
        document.getElementById('outer').appendChild(insert);
        var e = document.getElementById('asdf')
        console.log(e.innerHTML);
        e.innerHTML = e.innerHTML;
        console.log(e.innerHTML); // This is different than 2 lines above!!
    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

html javascript firefox jquery dom

21
推荐指数
1
解决办法
2172
查看次数

Firefox onLocationChange并不总是被调用

我正在构建一个firefox扩展,它创建了几个隐藏的浏览器元素.

我想addProgressListener()为我加载的页面处理onLocationChange.但是,我的处理程序并不总是被调用.

更具体地说,这就是我正在做的事情:

  1. 创建一个浏览器元素,而不设置其src属性
  2. 将它附加到另一个元素
  3. 添加一个侦听onLocationChange浏览器元素的进度监听器
  4. loadURIWithFlags()使用所需的网址调用并发布数据

我希望每次在4之后调用处理程序,但有时它不会(虽然它似乎卡在同一页面上).

有趣的是,如果我将3和4包裹在内部,setTimeout(..., 5000);它每次都有效.

我也试过改变一些步骤,但它没有任何效果.

更大的图片:当浏览器contentDocument是新加载的页面(重定向后)时,我希望得到可靠的通知.有一个更好的方法吗?

更新:我已经在mozilla的bug跟踪器上打开了一个错误,其中有一个显示此行为的最小xulrunner应用程序,以防任何人想要仔细查看:https://bugzilla.mozilla.org/show_bug.cgi?id = 941414

javascript firefox xul firefox-addon settimeout

10
推荐指数
1
解决办法
948
查看次数

边缘遍历昂贵的树中总节点的统计估计

我有一个有针对性的树,我想得到它的大小.我没有关于它的深度或节点分布的信息.有两个主要障碍:

1)树很大(〜数十亿个节点)

2)边缘遍历很昂贵.

我是否可以使用统计方法快速估算其大小(节点数)并使用有界误差?不幸的是,谷歌搜索只会产生精确计数算法,这些算法在这些限制条件下表现不佳.

奖金

如果我放松从树到DAG(有向无环图)的约束,我可以得到它的大小和唯一路径的数量吗?例如,这个DAG(每个边缘指向下)

在此输入图像描述

有19个节点(大小)和23个路径(4个额外的路径,因为红色边缘为其目标节点提供了1个路径,另外3个路径指向其目标节点的子节点)

我尝试过的事情

对于树案例,我正在考虑以下内容:

amounts = []
def estimateHelper(node):
    amounts[node.depth].push(len(node.children))
    for each child in small random sample of node.children:
        estimateHelper(child)
def estimate(root):
    estimateHelper(root)
    reach = 0
    for (j = len(amounts) - 1; j >= 0; --j):
        avgChildrenPerNodeAtThisLevel = avg(amounts[j])
        reach = avgChildrenPerNodeAtThisLevel + avgChildrenPerNodeAtThisLevel * reach
    return reach
Run Code Online (Sandbox Code Playgroud)

它基本上计算树的最深节点处的"范围",然后将其传播回上面的级别以找到该级别的范围.它一直这样做,直到它最终找到树的根"到达".我不确定我是否在上述算法中对节点的均匀分布做出任何假设.重申一下,我不知道给定树会有什么样的分布.

假设它有效,这也解决了DAG的"路径".一旦你拥有了所有的"路径",我就会想到使用生日悖论的倒数来计算出有多少个唯一的节点.生日悖论回答"我们需要多少天(路径)才能选择,直到我们遇到重复的一天,并且在一年中有365个独特的日子可能会有一些概率".所以我们继续尝试随机路径(天),直到我们遇到一个重复的节点,我们重复几次以找到该事件的概率,然后我们将其插入生日悖论以找到唯一节点的数量(唯一的天数)年).但请注意,生日悖论也会假设一致性.

这些都不是非常严谨.什么是理想的东西,它给我一个误差界限的估计,和一篇描述该算法足够严谨的论文.任何指向正确方向的人都非常感激.

python algorithm statistics tree duplicates

8
推荐指数
1
解决办法
236
查看次数

动态定义时,SVG clipPath无法在Firefox中运行

我有以下代码:

<div class="blah" style="clip-path: url(#clippath)"></div>
<svg width="0" height="0"><defs><clipPath id="clippath">
  <rect x="0" y="0" height="100" width="100"></rect>
</clipPath></defs></svg>
Run Code Online (Sandbox Code Playgroud)

这正确地将blahdiv 剪辑为100x100平方.但是,如果我使用JavaScript将svg添加到DOM(而不是从页面加载那里),它就不再起作用了.具体来说,我想基于我的应用程序中发生的事件创建动态剪辑路径.

我究竟做错了什么?这只需要在Firefox中工作(遗憾的是不支持clip-path: polygon(...))

html javascript css firefox svg

1
推荐指数
1
解决办法
859
查看次数

标签 统计

javascript ×4

firefox ×3

html ×2

.net ×1

algorithm ×1

css ×1

dom ×1

duplicates ×1

firefox-addon ×1

java ×1

jquery ×1

php ×1

python ×1

regex ×1

settimeout ×1

statistics ×1

svg ×1

tree ×1

xul ×1