小编nic*_*ckf的帖子

为什么匹配的子字符串在JavaScript中返回"undefined"?

我今天在JavaScript中使用正则表达式时遇到了一种奇怪的行为(Windows Vista上的Firefox 3).

var str = "format_%A";
var format = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(str);

console.log(format);    // ["format_%A", "%A"]
console.log(format[0]); // "format_undefined"
console.log(format[1]); // Undefined
Run Code Online (Sandbox Code Playgroud)

正则表达式没有错.如您所见,它与第一次console.log调用中的正确部分相匹配.

Internet Explorer 7和Chrome都按预期运行:format[1]返回"%A" (好吧,Internet Explorer 7做正确的事情有点出乎意料......)

这是Firefox中的一个错误,还是我不知道的一些"功能"?

javascript regex firefox firebug

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

磁盘空间开销最小的版本控制

我一直在考虑使用像SVN这样的版本控制系统作为我使用的几台PC之间的通用备份和同步工具.这将适用于各种数据,包括MP3和翻录的DVD - 大量数据(120gb +).

我的主要问题是SVN在.svn目录中创建每个版本化文件的副本.虽然我可以看到这在大多数情况下非常有用,但对于我的目的而言,这完全没有必要,并且大量浪费磁盘空间.

是否存在不会在工作副本中创建文件副本的VCS?

编辑澄清:我只是在谈论每台计算机上所需文件的大小.对于SVN,这意味着工作副本及其元文件的大小 - 对于DVCS来说,这就是WC和存储库的大小.

svn version-control

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

jQuery动画跨多个元素排队

这个问题类似于关于动画队列的问题,但该线程中的答案非常具体,不易推广.

在我的web应用程序,消息报告给用户(信息框,错误和警告等),通过输出divclass="alert"如:

<div class="alert">Login successful</div>
<div class="alert">You have new messages waiting</div>
Run Code Online (Sandbox Code Playgroud)

页面上可能有任意数量的警报,具体取决于用户的操作.

我想要的是使用jQuery动画按顺序显示每个警报框:一旦一个动画结束,下一个动画开始.

其他问题的答案说使用回调如:

$('#Div1').slideDown('fast', function(){
    $('#Div2').slideDown('fast');
});
Run Code Online (Sandbox Code Playgroud)

除非在动画中存在未知数量的div,否则无效.有人知道实现这个目标的方法吗?

queue jquery animation

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

阻止外部链接的道德规范

我只是查看Google提供的一些网站管理员统计信息,并注意到我们网站最常见的链接是我们以PDF格式提供的一些研究文章.这些文章也可以在网站上以HTML格式获得.

我正在查看链接到这些文章的网站(主要是论坛和博客),并且认为没有点击链接的人实际上会看到我们的网站,而且我们正在免费提供一些东西,甚至没有获得一些页面浏览量作为回报.

我想也许我可以更改我的服务器设置,将外部请求重定向到这些文件到HTML版本.这样,用户仍然可以获得相同的内容(虽然是以意想不到的格式),我们会让这些人看到我们的网站并希望更多地探索它.来自我网站的请求应该通过PDF.虽然我还不知道如何设置它(请留意这里的后续问题),我确信这在技术上是可行的.唯一的问题是:这是一个好主意吗?

您会考虑从外部来源重定向流量的缺点,以便他们看到我们的网站,而不只是获取我们的内容?它们是否超过了收益?

我能看到的唯一其他备用选项是让我们的品牌和URL在PDF文件本身中更加明显.有什么想法吗?

redirect hyperlink

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

预填充包含HTML内容的电子邮件

我一直在研究一个带有功能的项目,这样当我点击一个按钮时,Outlook就会打开,存储在变量中的相应值将存在于邮件正文中.我试过以下代码:

<html>
<head>
    <title>Email This Code Snippet</title>
    <script language="javascript">
    function TriggerOutlook()
    {         
        var sub = "Hi friend";
        var bodycont = "<html><body>welcome</body></html>";
        var body = escape(bodycont + String.fromCharCode(13));        
        window.location.href = "mailto:sakthivela@yahoo.com"
                             + "?body=" + body
                             + "&subject=" + sub
        ;                
    }    
</script>
</head>
<body>
<form id="form1">
    <a href="#" onclick="TriggerOutlook()">Email this Codesnippet</a>
    <input type="text" name="txtbody" id="txtbody">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是邮件的正文是<html><body>welcome</body></html>纯文本,而不是HTML.如何将其格式化为HTML?

html javascript

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

迁移到较新版本的 PHP

我注意到几周前 PHP 5.3 达到了发布候选阶段(哇!),但随后看到已弃用的函数列表最终被删除,这让我开始思考它是否会破坏我的旧代码。

除了进行“吮吸看看”测试(安装在测试服务器上并尝试)之外,是否有任何类型的迁移工具可以分析您的代码以突出显示问题?例如,如果某些脚本使用这些ereg_*函数。

php migration

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

SQL group by problem

我有一个查询,它在WHERE子句中执行了许多连接并且有一些标准,我最终得到的结果基本上如下所示:

| userId |       date |  otherData |
|--------+------------+------------|
|      1 | 2008-01-01 |  different |
|      1 | 2009-01-01 |       info |
|      1 | 2010-01-01 |        for |
|      2 | 2008-01-01 |       each |
|      3 | 2008-01-01 |        row |
|      3 | 2009-01-01 |       here |
Run Code Online (Sandbox Code Playgroud)

因此,对于每个用户而言,过去会有一个或多个日期,以及将来有0个或更多日期.

我需要以某种方式将数据集减少到每个用户一行,只选择具有最近传递日期的行.也就是说,无论添加什么魔法GROUP BYHAVING子句,上面的结果都是这样的:

| userId |       date |  otherData |
|--------+------------+------------|
|      1 | 2009-01-01 |       info |
|      2 | 2008-01-01 | …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by

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

什么可能导致XMLHttpRequest永远不会改变Firefox中的状态?

我正在研究一些旧的AJAX代码,这些代码是在jQuery之前的黑暗日子里编写的.奇怪的是,它一直运作良好多年,直到今天它突然停止触发回调.这是基本代码:

var xml = new XMLHttpRequest();  // only needs to support Firefox
xml.open("GET", myRequestURL, true);
xml.onreadystatechange = function() { alert ('test'); };
xml.send(null);
Run Code Online (Sandbox Code Playgroud)

检查Firebug控制台,发送请求时无需担心,并且它从请求URL接收到正确的XML,但该onreadystatechange功能根本不起作用.没有javascript错误或系统中发生任何其他奇怪的事情.

我希望我可以使用jQuery重写所有内容,但我现在没有时间.什么可能导致这个问题?


进一步的更新 - 我已经能够在不同的浏览器(FFx 3.0)中测试我的代码并且它在那里工作,所以它一定是我的浏览器的问题.我在Vista上运行Firefox 3.5b4,我现在已经尝试过,所有我的插件都被禁用而没有运气.它仍然真的让我烦恼,因为我昨天在这个网站上工作(使用相同的浏览器设置)并且根本没有问题...

实际上我只是回顾一下我的Addons窗口,看到Firebug仍然启用了.如果我禁用Firebug,它可以完美运行.如果我启用它,它就会崩溃.Firebug版本1.40.a31

javascript ajax

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

使用Javascript检测CSS功能

是否可以使用Javascript检测CSS支持?

例如,是否可以检测浏览器是否支持这样的属性选择器?

input[type='text'] { }
Run Code Online (Sandbox Code Playgroud)

javascript css browser

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

Typescript - 如何创建多种类型的数组

我有一个通用接口和两个接口“Person”和“Employee”,它们扩展了第一个接口:

    export interface Common {
        id: number,
        name: string
      }

      export interface Person extends Common {
        age: number;
      }

      export interface Employee extends Common {
        role: string;
      }
Run Code Online (Sandbox Code Playgroud)

我需要一个与这些接口混合的数组,例如:

listOfPeople: Person[] | Employee[] = [{id: 1, name: 'George', age: 4}, {id: 2, name: 'Micheal', role: 'software developer'}];
Run Code Online (Sandbox Code Playgroud)

但这样我就得到了一个错误。获得我想要的结果的正确方法是什么?

typescript

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