小编use*_*743的帖子

Javascript不会使用正则表达式进行拆分

自从我开始写这个问题以来,我想我已经找到了每个问题的答案,但我认为无论如何我都会发帖,因为它可能对其他人有用,更多的澄清可能会有所帮助.

我试图使用带有javascript函数拆分的前瞻性的正则表达式.由于某种原因,即使在我调用匹配时找到匹配项,它也不会拆分字符串.我原本以为问题来自于我的正则表达式中使用前瞻.这是一个简化的例子:

不起作用:

"aaaaBaaaa".split("(?=B).");
Run Code Online (Sandbox Code Playgroud)

作品:

"aaaaBaaaa".match("(?=B).");
Run Code Online (Sandbox Code Playgroud)

问题似乎是在拆分示例中,传递的字符串未被解释为正则表达式.使用正斜杠而不是引号似乎可以解决问题.

"aaaaBaaaa".split(/(?=B)./);
Run Code Online (Sandbox Code Playgroud)

我用以下愚蠢的例子证实了我的理论:

"aaaaaaaa(?=B).aaaaaaa".split("(?=B).");
Run Code Online (Sandbox Code Playgroud)

有没有其他人认为匹配函数假设你有一个正则表达式,而split函数没有?

javascript regex split lookahead

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

管道作为进程间通信

我有兴趣编写独立的程序模块,作为独立的线程运行,我可以与管道连接在一起.我的动机是我可以完全独立地编写和测试每个模块,甚至可以用不同的语言编写它们,或者在不同的机器上运行不同的模块.这里有各种各样的可能性.我已经使用了一段时间的管道,但我不熟悉它的行为的细微差别.

  • 似乎接收端将阻止等待输入,这是我期望的,但是发送端块有时会等待某人从流中读取吗?
  • 如果我写了一个eof到流,我可以继续写入该流,直到我关闭它?
  • 命名和未命名管道的行为是否存在差异?
  • 使用命名管道首先打开管道的哪一端是否重要?
  • 管道的行为是否在不同的Linux系统之间保持一致?
  • 管道的行为是否取决于我正在使用的shell或我配置它的方式?
  • 如果我想以这种方式使用管道,我还应该问任何其他问题或者我应该注意的问题吗?

unix piping

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

非递归替换内置的javascript函数

我在这里写一些bookmarklet,我有一些与内置javascript函数有关的问题.

假设我想替换内置的提示函数(不一定在bookmarklet中).这似乎很容易,但有没有办法从这个替换中调用内置提示函数?

prompt = function(message){
    var tmp = prompt(message);
    hook(tmp);
    return tmp;
}
Run Code Online (Sandbox Code Playgroud)

我无法确定范围正确; 这个例子产生无限递归.

还有一种方法可以恢复已替换的内置javascript函数的默认行为(不需要挂起额外的引用).

javascript prompt built-in scoping

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

标签 统计

javascript ×2

built-in ×1

lookahead ×1

piping ×1

prompt ×1

regex ×1

scoping ×1

split ×1

unix ×1