我创建了一个简单的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) 根据第6版JavaScript:The Definitive Guide(Flanagan,2011):
ECMAScript v3指定替换参数
replace()
可以是函数而不是字符串.
我正在研究2005年编写的一些代码,其中使用了一个复杂的解决方法来替换字符串的一部分.代码的注释清楚地表明它最初使用的是功能replace()
方法,但是解决方法对于跨浏览器兼容性是必需的.
ECMAScript v3于1999年问世,据我所知(从这篇论文和本篇博文中可以看出),自2001年底以来,ECMAScript v3在主流浏览器中得到了支持.作者是错误的,还是有人可以解释一下为什么2005年可能需要这样的解决方案?
...
更新代码作者的实际评论说:
RegExps中的lambda函数目前是太多浏览器的问题.
改变了代码来解决问题.
作者代码适用于或运行此业务,尽管代码本身可能是个人项目.
我想比较我已经与原始/上游存储库分叉的存储库的本地克隆,以查看是否已经进行了进一步的提交,要求我进行拉/合并.我想从命令行执行此操作.
我用这个命令将原始存储库添加到我的遥控器列表中:
git remote add upstream <original repo URL>
Run Code Online (Sandbox Code Playgroud)
这在Github自己的关于分支分支主题的页面中有所概述.
然而,当我运行git diff upstream
或 git 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
不会返回错误(或任何事情).我错过了什么吗?
我刚刚在运行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重新安装它.我查了一下错误(通过搜索上面的第一行),发现在这里 …
我正在使用 Git 对散文进行版本化,并且一直在尝试git diff --word-diff
查看行内的更改。我想使用脚本中生成的结果。
但是--word-diff
识别单词的默认方式似乎有缺陷。所以我一直在尝试各种--word-diff-regex=
选择。
以下是我试图解决的两个主要缺陷:
添加的空格似乎被忽略了。但是如果尝试以编程方式使用结果,空格可能非常重要。
例如,从 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”一词之前的空格并未作为差异的一部分包含在内。
空行被完全忽略。
这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)我有以下模块有两种方法,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
属性.
我希望能够在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
(一次显示尽可能多的大块头,而不是大块头)是问题所在?
我正在使用GitHub Pages托管我的博客,并使用Jekyll演示它。
大概,我所做的任何事情都会<yourname>.github.io
通过Jekyll并以https://github.com/<yourname>/<yourname>.github.io
原始形式出现。请参阅此页面,其中显示了指向活动站点以及用于构建活动站点的源存储库的链接。
有关SEO的建议表明,在域内和跨域复制内容是不好的SEO做法。有关重复的信息,请参见此Google支持页面;有关重复的问题,请参见此Moz页面;这两种方法也都提供了可能的解决方案。
我的问题有两个:
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中的设置来处理它。
我正在调试并评论其他人的JavaScript代码,但其中有一些恶魔RegEx.虽然我对RegEx的了解相当不错,但是有一个可靠的可视化器可以将每个RegEx字符串显示为铁路图或类似的东西.
我在这个问题上找到了Eclipse的插件,用于Java,所以我想知道是否有类似JavaScript的东西.
它不一定是一个插件,虽然Notepad ++的东西是理想的.我通过Notepad ++的插件管理器进行了检查,但我看到的两个RegEx工具并不是很好.
接受表达式并生成图表的网页也可以正常工作,这样可以节省我不得不使用JSFiddle的费用.
有谁知道这样的工具是否存在?或者,如果有一些我缺少的技巧可以让人类解析RegEx更容易?
我在java中有一个for-each循环.
for-each myList
在一个线程中运行.myList
可以同时成长.我有一些问题:
ConcurrentModificationException
.所以我的解决方案是在for-each循环结束后删除所有列表项.但是,这样一来,如果在for-each循环启动后添加到列表中的项目也被删除了,则for-each循环将永远不会在此项目上运行.我的目标是在一个可以同时增长的列表上运行for-each.我希望for-each循环永远不会错过任何项目,并且永远不会在同一项目上运行两次或更多次.解决办法是什么?
关于Git的非常基本的初学者问题,来自一个命令行经验非常少的人.
git init
命令开始在文件夹中工作.打开Git Bash时,我显示了我的用户名和计算机名称(在表单中username@computername
)并给出了$
提示.在Windows的cmd.exe中,我可以使用命令dir
来列出文件夹中的所有内容,并cd
更改为特定文件夹,但除非我遗漏了某些内容,否则Git Bash无法使用这些命令.
问题:指南说'如果你开始跟踪Git中的现有项目,你需要转到项目的目录并输入$ git init
'.如何列出并导航到我可能想git init
在Git Bash中使用该命令的文件夹?
...
...
......按照以下答案......
其他人的资源:自从得到以下答案(这有助于澄清我的初学者对Bash脚本语言和Git Bash的混淆),我发现以下资源可能对其他努力开始的人有用...
dir
!)我想要一个正则表达式来匹配由一对括号括起来的数字,例如,它会匹配看起来像这样的东西:
(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限制中可能甚至是不可能的),但这就是我将问题提交给这个专家论坛的原因.