小编guy*_*sey的帖子

如何在JavaScript字符串中创建换行符以提供给NodeJS以写入文本文件?

我创建了一个简单的HTML页面,它从用户那里获得一些输入以存储在服务器上以便稍后检索 - 这是用户点击提交按钮时文本的处理方式(我在键下放置了编号的注释)行,但提供上下文的代码):

var origText = $('#input-field').val(),
        // 1. GETS WHATEVER USER TYPED INTO INPUT FIELD
    jsonText = '{ "text": "' + origText + '" }',
        // 2. WRAPS IT AN OBJECT STRING
    ajaxText = encodeURIComponent(jsonText);
        // 3. ENCODES THE STRING FOR USE WITH AJAX

$.ajax({
    url: 'http://localhost:8124/',
    data: 'save=' + ajaxText + '&fn=save',
        // 4. THE ENCODED STRING IS ADDED TO THE QUERY SECTION OF THE AJAX REQUEST
    dataType: "jsonp",
    cache: false,
    timeout: 5000,
    success: function(data) {
        $("#input-ready").html(data.save.text);
    }, …
Run Code Online (Sandbox Code Playgroud)

javascript jquery node.js

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

所有浏览器何时开始支持String.replace(regexp,replacement_function)?

根据第6版JavaScript:The Definitive Guide(Flanagan,2011):

ECMAScript v3指定替换参数replace()可以是函数而不是字符串.

我正在研究2005年编写的一些代码,其中使用了一个复杂的解决方法来替换字符串的一部分.代码的注释清楚地表明它最初使用的是功能replace()方法,但是解决方法对于跨浏览器兼容性是必需的.

ECMAScript v3于1999年问世,据我所知(从这篇论文本篇博文中可以看出),自2001年底以来,ECMAScript v3在主流浏览器中得到了支持.作者是错误的,还是有人可以解释一下为什么2005年可能需要这样的解决方案?

...

更新代码作者的实际评论说:

RegExps中的lambda函数目前是太多浏览器的问题.

改变了代码来解决问题.

作者代码适用于或运行此业务,尽管代码本身可能是个人项目.

javascript cross-browser ecma262

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

如何将本地分叉存储库与可能对原始存储库进行的更改进行比较?

我想比较我已经与原始/上游存储库分叉的存储库的本地克隆,以查看是否已经进行了进一步的提交,要求我进行拉/合并.我想从命令行执行此操作.

我用这个命令将原始存储库添加到我的遥控器列表中:

git remote add upstream <original repo URL>
Run Code Online (Sandbox Code Playgroud)

这在Github自己的关于分支分支主题的页面中有所概述.

然而,当我运行git diff upstreamgit diff upstream/master 作为这里建议git diff master upstream/master 作为建议在这里,我得到这样的:

fatal: ambiguous argument 'upstream': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

该命令git diff origin/master不会返回错误(或任何事情).我错过了什么吗?

git github git-diff git-fork

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

使用Express提供网页时,使用`path.join`节点JS TypeError

我刚刚在运行Linux Peppermint Three的上网本上安装了Node JS(v0.10.0).我有一个要运行的文件,其顶部有以下内容:

var app = require('express').createServer(),
    io = require('socket.io').listen(app);

app.listen(8080);

// routing
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});
Run Code Online (Sandbox Code Playgroud)

问题是,当我访问时,localhost:8080我得到以下内容:

TypeError: Arguments to path.join must be strings
    at path.js:360:15
    at Array.filter (native)
    at exports.join (path.js:358:36)
    at exports.send (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/node_modules/connect/lib/middleware/static.js:129:20)
    at ServerResponse.res.sendfile (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/response.js:186:3)
    at usernames (/home/guy/Dropbox/Node/socket_io echo test/med.js:11:7)
    at callbacks (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:272:11)
    at param (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:246:11)
    at pass (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:253:5)
    at Router._dispatch (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:280:5)
Run Code Online (Sandbox Code Playgroud)

完全相同的文件在我的Windows XP笔记本电脑上工作,但我还没有更新Node(仍在运行v0.8.15).所以我不知道是不是我在Linux上安装了Node(我是新手),这就是问题或版本之间的差异.显然我不想在Windows上更新Node,如果它会导致同样的问题.

我已经检查过Express应该在哪里,这似乎没问题.我试过通过npm重新安装它.我查了一下错误(通过搜索上面的第一行),发现在这里 …

linux node.js express socket.io

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

git word diff regex 奇怪的行为

我正在使用 Git 对散文进行版本化,并且一直在尝试git diff --word-diff查看行内的更改。我想使用脚本中生成的结果。

但是--word-diff识别单词的默认方式似乎有缺陷。所以我一直在尝试各种--word-diff-regex=选择。

问题

以下是我试图解决的两个主要缺陷:

  1. 添加的空格似乎被忽略了。但是如果尝试以编程方式使用结果,空格可能非常重要。

    例如,从 Markdown (.md) 文件中获取此标头:

    # Test file
    
    Run Code Online (Sandbox Code Playgroud)

    现在,让我们在它的末尾添加一些文本:

    # Test file in Markdown
    
    Run Code Online (Sandbox Code Playgroud)

    如果我运行git diff --word-diff这个:

    # Test file {+in Markdown+}
    
    Run Code Online (Sandbox Code Playgroud)

    但是“in”一词之前的空格并未作为差异的一部分包含在内。

  2. 空行被完全忽略。

    git diff是文件内容的标准,我删除了一行并添加了几行新行——一个是空的,另一个带有文本“这是一个新行”。

     This is a test file to see how word diff responds in certain situations.
    -
     I'll try removing lines and adding them to see what happens.
    
     Here's another line so we can see what happens …
    Run Code Online (Sandbox Code Playgroud)

regex git word-diff

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

向现有模块化模式对象添加新方法

我有以下模块有两种方法,A()并且B():

var Module = (function() {

    function A(){
      console.log("Module: A");
      B();
    };

    function B(){
       console.log("Module: B");
       Module.Utils.C(); /* Here is the problem */
    };

    return {
      A:A,
      B:B
    }

} ());
Run Code Online (Sandbox Code Playgroud)

说我想添加一个新方法C()......

function C(){
      console.log("C");
    };
Run Code Online (Sandbox Code Playgroud)

...到上面的模块而不触及它,即,我不想改变现有代码,Module而是扩展它以获得新C属性.

javascript closures design-patterns

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

使用 `git add -p` 和 `git diff --word-diff`

我希望能够在git add -p检查每个大块时使用并突出显示单词级别的更改。

这是一个长期存在的问题,但我仍然无法找到解决方案。

2017 年的一个答案建议使用:

git -c interactive.diffFilter="git diff --word-diff" add -p

但是,对我来说,这会产生一个错误:

fatal: mismatched output from interactive.diffFilter
hint: Your filter must maintain a one-to-one correspondence
hint: between its input and output lines.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 的输出git diff --word-diff会与git add -p.

事实上,我什至可以这样做:

git -c interactive.diffFilter="git diff" add -p

我得到了同样的错误——尽管过滤器git diff本身就是普通的未标记命令。

我只能认为正在添加或删除行作为过滤器添加本身的一部分,或者分页git diff(一次显示尽可能多的大块头,而不是大块头)是问题所在?

git diff

5
推荐指数
0
解决办法
111
查看次数

GitHub Pages和Jekyll内容重复和SEO问题

我正在使用GitHub Pages托管我的博客,并使用Jekyll演示它。

大概,我所做的任何事情都会<yourname>.github.io通过Jekyll并以https://github.com/<yourname>/<yourname>.github.io原始形式出现。请参阅此页面,其中显示了指向活动站点以及用于构建活动站点的源存储库的链接

有关SEO的建议表明,在域内和跨域复制内容是不好的SEO做法。有关重复的信息,请参见此Google支持页面;有关重复的问题,请参见此Moz页面;这两种方法也都提供了可能的解决方案。

我的问题有两个:

  • 实际上,内容复制实际上是GitHub Pages的问题吗?
  • 如果是这样,一个人如何应用规范链接或noindex到GitHub存储库之类的解决方案,以便搜索引擎知道您的Jekyll网站就是规范站点?

更新:

可能值得注意的是,我已将“ hello world”索引文件上传到我的GitHub Pages存储库,然后在GitHub上检查了该页面的源代码。GitHub源代码已经包含一个规范链接

<link rel="canonical" href="https://github.com/guypursey/guypursey.github.io/blob/master/index.html" data-pjax-transient>
Run Code Online (Sandbox Code Playgroud)

我认为正是这种情况,每个文件都需要更改以指向站点的Jekyll版本,但是我看不到GitHub中的设置来处理它。

seo github jekyll canonical-link

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

我在哪里可以找到适用于JavaScript的RegEx可视化工具?

我正在调试并评论其他人的JavaScript代码,但其中有一些恶魔RegEx.虽然我对RegEx的了解相当不错,但是有一个可靠的可视化器可以将每个RegEx字符串显示为铁路图或类似的东西.

  • 我在这个问题上找到了Eclipse的插件,用于Java,所以我想知道是否有类似JavaScript的东西.

  • 它不一定是一个插件,虽然Notepad ++的东西是理想的.我通过Notepad ++的插件管理器进行了检查,但我看到的两个RegEx工具并不是很好.

  • 接受表达式并生成图表的网页也可以正常工作,这样可以节省我不得不使用JSFiddle的费用.

有谁知道这样的工具是否存在?或者,如果有一些我缺少的技巧可以让人类解析RegEx更容易?

javascript regex debugging plugins visualization

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

对于同时增长的列表中的每个循环

我在java中有一个for-each循环.

for-each myList在一个线程中运行.myList可以同时成长.我有一些问题:

  1. 如果我启动了for-each循环并且在它启动之后,一个项目被添加到列表中,for-each循环中的动作是否会在它上面运行?
  2. 假设上述问题的答案是否定的.我有点问题.for-each循环处于while(true)循环中,因此它将重新开始.我希望for-each循环在每个项目上运行一次.我无法在for-each循环中删除项目,因为我得到了ConcurrentModificationException.所以我的解决方案是在for-each循环结束后删除所有列表项.但是,这样一来,如果在for-each循环启动后添加到列表中的项目也被删除了,则for-each循环将永远不会在此项目上运行.

我的目标是在一个可以同时增长的列表上运行for-each.我希望for-each循环永远不会错过任何项目,并且永远不会在同一项目上运行两次或更多次.解决办法是什么?

java multithreading list arraylist

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

从Git开始:如何设置要使用的目录?

关于Git的非常基本的初学者问题,来自一个命令行经验非常少的人.

  • 我打开了Git Bash.
  • 我一直在遵循这个非常有用的指南,我已经理解了这一点.
  • 我想使用git init命令开始在文件夹中工作.

打开Git Bash时,我显示了我的用户名和计算机名称(在表单中username@computername)并给出了$提示.在Windows的cmd.exe中,我可以使用命令dir来列出文件夹中的所有内容,并cd更改为特定文件夹,但除非我遗漏了某些内容,否则Git Bash无法使用这些命令.

问题:指南说'如果你开始跟踪Git中的现有项目,你需要转到项目的目录并输入$ git init'.如何列出并导航到我可能想git init在Git Bash中使用该命令的文件夹?

...

...

......按照以下答案......

其他人的资源:自从得到以下答案(这有助于澄清我的初学者对Bash脚本语言和Git Bash的混淆),我发现以下资源可能对其他努力开始的人有用...

git bash git-bash

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

如何确保我的正则表达式捕获只被一对括号包围?

我想要一个正则表达式来匹配由一对括号括起来的数字,例如,它会匹配看起来像这样的东西:

(1)
Run Code Online (Sandbox Code Playgroud)

但是,应该匹配(1)这里面:

((1))
Run Code Online (Sandbox Code Playgroud)

本来我试过这个:

([^\(])\(([0-9]+)\)([^\)])
Run Code Online (Sandbox Code Playgroud)

但它无法在字符串的开头或结尾处匹配单个带括号的数字.因此blah blah (1)没有返回匹配,即使它非常清楚地包含(1).这是因为上面的正则表达式查找不在打开或关闭括号的字符,当在字符串的开头或结尾时,没有要查找的字符.

然后我尝试了这个:

([^\(]?)\(([0-9]+)\)([^\)]?)
Run Code Online (Sandbox Code Playgroud)

这成功匹配(1)但也匹配(1)内部((1)),因为它只是忽略了正则表达式中的周围括号.所以这个太宽泛了我的需求.

如果我找到一个解决方案,我将继续进行实验并在此处发布解决方案,但我们将非常感谢您提供帮助.有任何想法吗?

请注意:我使用的是JavaScript.JavaScript中不包含一些正则表达式功能.


更新:

我没有明确指出,当匹配很重要时,在括号内捕获数字很重要.(我希望这不会对下面给出的解决方案产生负面影响,除了让它们更难以阅读!)然而,整个(1)应该被替换为结果,所以匹配两个括号也很重要.

所有发人深省的反应使我为不同的情况制定了一堆预期的结果.希望这能使表达的目标更加清晰.

  • (1) ==>匹配'(1)'并捕获'1'

  • ((1)) ==>不匹配

  • (((1))) ==>不匹配

  • (1) (2) ==>匹配'(1)'和'(2)'并捕获'1'和'2'

  • (1) ((2)) ==>匹配'(1)'并捕获'1'

  • ((1) (2)) ==>匹配'(1)'和'(2)'并捕获'1'和'2'

  • (1)(2) ==>匹配'(1)'和'(2)'并捕获'1'和'2'[理想]或不匹配

  • (1)((2)) ==>匹配'(1)'并捕获'1'[理想]或不匹配

  • ((1)(2)) ==>匹配'(1)'和'(2)'并捕获'1'和'2'[理想]或不匹配

对于最后三个,我说'理想'因为有宽大处理.第一个结果是首选的结果,但如果不可能,我可以忍受根本没有匹配.我意识到这是一个挑战(在JavaScript的RegExp限制中可能甚至是不可能的),但这就是我将问题提交给这个专家论坛的原因.

javascript regex

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