小编Cha*_*son的帖子

JavaScript正则表达式文字在函数调用之间持续存在

我有这段代码:

function func1(text) {

    var pattern = /([\s\S]*?)(\<\?(?:attrib |if |else-if |else|end-if|search |for |end-for)[\s\S]*?\?\>)/g;

    var result;
    while (result = pattern.exec(text)) {
        if (some condition) {
            throw new Error('failed');
        }
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,除非执行throw语句.在这种情况下,下次调用该函数时,exec()调用从它停止的地方开始,即使我为它提供了一个新的'text'值.

我可以通过写作解决它

var pattern = new RegExp('.....');

相反,但我不明白为什么第一个版本失败了.正则表达式如何在函数调用之间保持不变?(这在最新版本的Firefox和Chrome中都会发生.)

编辑完整的测试用例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Test Page</title>
<style type='text/css'>
body {
    font-family: sans-serif;
}
#log p {
    margin:     0;
    padding:    0;
}
</style>
<script type='text/javascript'>
function func1(text, count) {

    var pattern = /(one|two|three|four|five|six|seven|eight)/g;

    log("func1");
    var result;
    while …
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

使用pythonw.exe时,Python subprocess.call()失败

当我使用python.exe运行它时,我有一些Python代码可以正常工作,但如果我使用pythonw.exe则会失败.

    def runStuff(commandLine):
        outputFileName = 'somefile.txt'
        outputFile = open(outputFileName, "w")

        try:
            result = subprocess.call(commandLine, shell=True, stdout=outputFile)
        except:
            print 'Exception thrown:', str(sys.exc_info()[1])

    myThread = threading.Thread(None, target=runStuff, commandLine=['whatever...'])
    myThread.start()

我收到的消息是:

    Exception thrown: [Error 6] The handle is invalid

但是,如果我没有指定'stdout'参数,则subprocess.call()启动正常.

我可以看到pythonw.exe可能正在重定向输出本身,但我不明白为什么我被阻止为新线程指定stdout.

python multithreading subprocess

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

使用powershell编辑多个XML文件

如何从指定目录获取多个XML文件的列表,并为每个文件使用powershell在第二个根节点下添加元素?

示例:我想<LastName>SomeName</LastName>在FIRST <Names>元素中添加:

<People>
  <Names>
      <FirstName>someFirstName</FirstName>
  </Names>
  <Names>
      <FirstName>myFirstName</FirstName>
      <Address>SomeAddress</Address>
  </Names>
</People>
Run Code Online (Sandbox Code Playgroud)

会变成:

<People>
  <Names>
      <LastName>SomeName</LastName>
      <FirstName>someFirstName</FirstName>
  </Names>
  <Names>
      <FirstName>myFirstName</FirstName>
      <Address>SomeAddress</Address>
  </Names>
</People>
Run Code Online (Sandbox Code Playgroud)

powershell powershell-1.0

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

使用jQuery无法找到动态添加的HTML元素

我正在用HTML实现树形浏览器.在单击节点时,我调用一个添加节点的子元素的函数.到现在为止还挺好.我现在想立即调用其中一个子元素的click处理程序来扩展它.我的问题是jQuery找不到刚刚添加的子元素.当我在调试器中单步执行时,我会在浏览器呈现新元素之前调用我的代码来查找元素,我猜这是问题所在.

是否有一些我可以等待的事件(类似于onload)可以标记新添加的HTML何时可见?或者我可以调用的方法强制渲染更早发生?欢迎大家提出意见.

注意:我已经意识到问题完全是我的错,而不是浏览器或jQuery.请参阅下面的答案.

html jquery

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

是否可以在IronPython中使用wxPython?

当我的IronPython程序到达该行时

import wx
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

A first chance exception of type
'IronPython.Runtime.Exceptions.PythonImportErrorException' occurred in IronPython.dll

Additional information: No module named _core_
Run Code Online (Sandbox Code Playgroud)

虽然我有文件wx\_core_.pyd.此外,在尝试导入之前,我有以下几行:

sys.path.append('c:\\Python24\\Lib\\site-packages')
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode')
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wx')
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wx\\lib')
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wxpython\\lib')
sys.path.append('c:\\Python24\\Lib\\site-packages\\wxaddons')
Run Code Online (Sandbox Code Playgroud)

我希望IronPython能够找到所需的一切.

python ironpython wxpython

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

Python xml.dom.minidom.parse() 函数忽略 DTD

我有以下Python代码:

import xml.dom.minidom
import xml.parsers.expat

try:
    domTree = ml.dom.minidom.parse(myXMLFileName)
except xml.parsers.expat.ExpatError, e:
    return e.args[0]
Run Code Online (Sandbox Code Playgroud)

我用它来解析 XML 文件。尽管它很高兴地发现简单的 XML 错误(例如标签不匹配),但它完全忽略了 XML 文件顶部指定的 DTD:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServerConfig SYSTEM "ServerConfig.dtd">
Run Code Online (Sandbox Code Playgroud)

因此,例如,它不会注意到强制元素缺失的情况。如何开启 DTD 检查?

python xml

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

这种C++技术用于向类调用添加类型是什么?

我刚刚发现了一些C++代码(在http://msdn.microsoft.com/en-us/library/k8336763(VS.71).aspx),它使用了我以前从未见过的技术来添加类型现有的课程:

class Testpm {
public:
   void m_func1() { cout << "m_func1\n"; }
   int m_num;
};

// Define derived types pmfn and pmd.
// These types are pointers to members m_func1() and m_num, respectively.
void (Testpm::*pmfn)() = &Testpm::m_func1;
int Testpm::*pmd = &Testpm::m_num;

int main() {
   Testpm ATestpm;
   Testpm *pTestpm = new Testpm;

   // Access the member function
   (ATestpm.*pmfn)();
   (pTestpm->*pmfn)();   // Parentheses required since * binds

   // Access the member data
   ATestpm.*pmd = 1;
   pTestpm->*pmd = 2;

   cout  << ATestpm.*pmd …
Run Code Online (Sandbox Code Playgroud)

c++ derived-types

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

如何在发生某些外部事件之前暂停Powershell脚本?

我正在使用Powershell 1脚本启动Python程序,然后我想暂停Powershell直到Python完成其工作.(我完全拥有Python文件.)最好的方法是什么?

powershell powershell-1.0

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

在Visual Studio中使用Edit.SelectToLastGoBack

Visual Studio 2005中有一个名为Edit.SelectToLastGoBack的命令(绑定到Ctrl + =).

我认为它应该选择当前光标位置和最后一个'Go Back'点之间的所有文本,但我无法计算出它用来决定那个点是什么的算法.

有谁知道如何使用这个可能非常有用的命令?

visual-studio-2005 visual-studio

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

jQuery 选择器中星号的效果

在 Chrome(版本 63)的 DevTools 控制台中,我输入了以下内容:

在此输入图像描述

请注意第二个查询中的额外星号。

两个查询都找到相同的元素,但第二个查询显然得到了略有不同的结果。我也没想到星号是合法的。

有人可以解释一下星号有什么影响吗?

请注意,这不仅仅是询问查询中星号的使用,还询问其紧邻标识符时的效果。

jquery jquery-selectors

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

为什么需要将PowerShell脚本参数复制到局部变量?

我有一个非常简单的Powershell v1.0脚本来按名称杀死进程:

$target = $args[0]
get-process | where {$_.ProcessName -eq $target} | stop-process -Force
Run Code Online (Sandbox Code Playgroud)

哪个有效.但是,当我刚才

get-process | where {$_.ProcessName -eq $args[0]} | stop-process -Force
Run Code Online (Sandbox Code Playgroud)

它找不到任何流程.那么为什么需要将参数复制到局部变量中以使代码工作?

powershell powershell-1.0

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

为什么 cmd.exe 和 PowerShell 中 ProgramFiles 变量的值不同?

我在 64 位 PC 上使用 Windows 7 Professional SP1。如果我打开 PowerShell 控制台并查看 $env:ProgramFiles,其值为“ C:\Program Files (x86) ”。但是,如果我打开 cmd.exe 并查看 %ProgramFiles%,其值为“ C:\Program Files ”。

有人可以解释为什么它们不同吗?我本以为它们要么是相同的,要么 cmd.exe 认为它生活在 32 位环境中。

windows powershell environment-variables windows-7-x64

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

Windows PowerShell中来自ipy.exe的"文件-X:不存在"消息

如果我在MS-DOS命令提示符窗口中键入此行:

ipy -X:ColorfulConsole
Run Code Online (Sandbox Code Playgroud)

IronPython按预期启动,启用了彩色控制台选项.但是,如果我在Windows PowerShell中键入相同的行,我会收到以下消息:

File -X: does not exist
Run Code Online (Sandbox Code Playgroud)

谁能解释我做错了什么?

python powershell ironpython

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