小编Mik*_*uel的帖子

是否可以通过.replace替换字符串中的所有回车符?

是否可以用.replace函数替换字符串中的所有回车符?我发现了很多复杂的功能,但是想知道它是否可以通过正则表达式进行简化.replace

谢谢!

javascript replace

45
推荐指数
2
解决办法
6万
查看次数

QuickSelect算法理解

我一直在研究讨论快速排序和快速选择的各种教程和文章,但是我对它们的理解仍然不稳定.

鉴于这种代码结构,我需要能够掌握并解释quickselect的工作原理.

// return the kth smallest item
int quickSelect(int items[], int first, int last, int k) {
    int pivot = partition(items, first, last);
    if (k < pivot-first) {
        return quickSelect(items, first, pivot, k);
    } else if (k > pivot) {
        return quickSelect(items, pivot+1, last, k-pivot);
    } else {
        return items[k];
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要一些帮助来分解伪代码,虽然我没有提供分区功能代码,但我想了解在提供quickselect功能的情况下它会做什么.

我知道quicksort是如何工作的,只是没有快速选择.我刚才提供的代码就是如何格式化快速选择的一个例子.

编辑:更正后的代码是

int quickSelect(int items[], int first, int last, int k) 
{
    int pivot = partition(items, first, last);
    if (k < pivot-first+1) 
    { //boundary was wrong …
Run Code Online (Sandbox Code Playgroud)

algorithm quickselect

28
推荐指数
2
解决办法
5万
查看次数

JavaScript:如何将DOM元素序列化为字符串以便以后使用?

这可能看起来像一个奇怪的请求,它是非常不寻常的,但这是一个我正在努力解决的挑战.

假设你有一个DOM元素,它由HTML和一些应用的CSS组成,还有一些JS事件监听器.我想克隆这个元素(以及所有应用的CSS和JS),将其序列化为一个字符串,我可以将其保存在数据库中,以便在将来的请求中添加到DOM中.

我知道jQuery有一些这样的方法(比如$ .css()来获取计算出的样式)但是我怎么能做所有这些事情并把它变成一个我可以保存在数据库中的字符串呢?

更新:这是一个示例元素:

<div id="test_div" class="some_class">
    <p>With some content</p>
</div>

<style>
#test_div { width: 200px }
.some_class { background-color: #ccc }
</style>

<script>
$('#test_div').click(function(){
    $(this).css('background-color','#0f0');
});
</script>
Run Code Online (Sandbox Code Playgroud)

...也许是一个示例序列化:

var elementString = $('#test_div').serializeThisElement();
Run Code Online (Sandbox Code Playgroud)

这将导致一个看起来像这样的字符串:

<div id="test_div"
     class="some_class" 
     style="width:200px; background-color:#ccc" 
     onclick="javascript:this.style.backgroundColor='#0f0'">
    <p>With some content</p>
</div>
Run Code Online (Sandbox Code Playgroud)

所以我可以发送它作为AJAX请求:

$.post('/save-this-element', { element: elementString } //...
Run Code Online (Sandbox Code Playgroud)

以上只是一个例子.如果序列化看起来与原始示例非常相似,那将是理想的,但只要它呈现与原始相同,我会很好.

javascript jquery

26
推荐指数
2
解决办法
1万
查看次数

没有html的innerHTML,只是文本

我创建了一个电子邮件链接,可以自动填充正文中的必要信息.但是,当我这样做时,我会得到比我讨价还价更多的东西.

我想要"2012年3月:12-16"

我得到了什么 <B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>

有没有办法在没有html标签的情况下获取innerHTML?

.value = undefined
.text = undefined
Run Code Online (Sandbox Code Playgroud)

html javascript innerhtml

23
推荐指数
2
解决办法
4万
查看次数

Java如何在其16位字符类型中存储UTF-16字符?

根据Java SE 7规范,Java使用Unicode UTF-16标准来表示字符.当想象一个String作为简单阵列 16位变量中的每个包含一个字符,寿命也很简单.

不幸的是,有16位的代码点是不够的(我相信它是所有Unicode字符的16/17).所以在a中String,这没有直接问题,因为当想要使用额外的两个字节存储这些~1.048.576个字符中的一个时,String将仅使用其中的两个数组位置.

这没有任何直接问题,适用于Strings,因为总有一个额外的两个字节.虽然单变量与UTF-16编码相比,具有16位固定长度,但是如何存储这些字符,特别是Java如何使用其2字节"char"来完成类型

java variables unicode encoding utf-16

23
推荐指数
2
解决办法
8953
查看次数

实际中HTML文档的最大深度是多少?

我想允许嵌入HTML,但由于深度嵌套的HTML文档导致某些浏览器崩溃,因此避免使用DoS.我希望能够容纳99.9%的文档,但拒绝那些嵌套太深的文档.

两个密切相关的问题:

  1. 浏览器内置了哪些文档深度限制?例如,浏览器X无法解析或无法构建深度>某些限制的文档.
  2. 网上提供文件的文件深度统计数据?是否存在具有Web统计信息的站点,该站点解释了Web上的某些百分比的真实文档的文档深度小于某个值.

文档深度定义为1 +从文档中的任何节点到达文档根目录所需的最大父遍历数.例如,在

<html>                   <!-- 1 -->
  <body>                 <!-- 2 -->
    <div>                <!-- 3 -->
      <table>            <!-- 4 -->
        <tbody>          <!-- 5 -->
          <tr>           <!-- 6 -->
            <td>         <!-- 7 -->
              Foo        <!-- 8 -->
Run Code Online (Sandbox Code Playgroud)

由于文本节点"Foo"具有8个祖先,因此最大深度为8.这里的祖先是非严格的解释,即永远的节点是它自己的祖先和它自己的后代.

Opera有一些表嵌套统计信息,这表明99.99%的文档的表嵌套深度小于22,但该数据不包含整个文档深度.

编辑:

如果人们想批评HTML清理库而不是回答这个问题,请这样做. http://code.google.com/p/owasp-java-html-sanitizer/wiki/AttackReviewGroundRules介绍了如何查找代码,在哪里找到可以尝试攻击的测试平台,以及如何报告问题.

编辑:

我问Adam Barth,他非常友好地指出了处理这个问题的webkit代码.

至少Webkit强制执行此限制.当TreeBuilder作为创建它接收一棵树的限制,可以配置:

m_treeBuilder(HTMLTreeBuilder::create(this, document, reportErrors, usePreHTML5ParserQuirks(document), maximumDOMTreeDepth**(document)))
Run Code Online (Sandbox Code Playgroud)

并通过块嵌套测试进行测试.

html metrics depth

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

Java Hamcrest:Collection包含类型的项目

我想声明它List<Achievement>包含一个类型的成员TestAchievement.

这是我的断言:

List<Achievement> achievements; // Populated elsewhere
assertThat(achievements,hasItem(isA(TestAchievement.class)));
Run Code Online (Sandbox Code Playgroud)

这不编译,报告错误:

方法断言Assert类型中的(T,Matcher)不适用于参数(List,Matcher <Iterable <TestAchievement >>)

使用Hamcrest这种断言的正确语法是什么?

java unit-testing hamcrest

20
推荐指数
2
解决办法
2万
查看次数

20
推荐指数
3
解决办法
2万
查看次数

为什么在java中有每个基本类型的包装器

Number子类包裹原始数值类型(Byte,Integer,Double,Float,Long,和Short).

他们的目的是什么?

java primitive-types

20
推荐指数
3
解决办法
4579
查看次数

转移Java BitSet

我用a java.util.BitSet来存储密集的位向量.

我想实现一个将位向右移1的操作,类似于>>>on int.

有一个库函数可以改变BitSets吗?

如果没有,是否有比下面更好的方法?

public static void logicalRightShift(BitSet bs) {
  for (int i = 0; (i = bs.nextSetBit(i)) >= 0;) {
    // i is the first bit in a run of set bits.

    // Set any bit to the left of the run.
    if (i != 0) { bs.set(i - 1); }

    // Now i is the index of the bit after the end of the run.
    i = bs.nextClearBit(i);  // nextClearBit never …
Run Code Online (Sandbox Code Playgroud)

java bit-shift bitset

20
推荐指数
4
解决办法
9058
查看次数