小编cal*_*lum的帖子

如何在正则表达式中匹配"直到这个字符序列"的任何内容?

拿这个正则表达式:/^[^abc]/.这将匹配字符串开头的任何单个字符,a,b或c除外.

如果你*在它之后添加- /^[^abc]*/- 正则表达式将继续将每个后续字符添加到结果中,直到它遇到a a, b, c.

例如,使用源字符串"qwerty qwerty whatever abc hello",表达式将匹配"qwerty qwerty wh".

但是如果我想要匹配的字符串呢? "qwerty qwerty whatever "

...换句话说,我怎样才能匹配到(但不包括)确切序列的所有内容 "abc"

regex

454
推荐指数
9
解决办法
59万
查看次数

以编程方式选择可疑的HTML元素中的文本?

在JavaScript中,可以以编程方式选择inputtextarea元素中的文本.您可以使用ipt.focus(),然后选择其内容来聚焦输入ipt.select().您甚至可以选择特定范围ipt.setSelectionRange(from,to).

我的问题是:有没有办法在contenteditable元素中做到这一点?

我发现我可以做elem.focus(),把插入符号放在一个contenteditable元素中,但随后运行elem.select()不起作用(也没有setSelectionRange).我在网上找不到任何关于它的东西,但也许我正在寻找错误的东西......

顺便说一下,如果它有所不同,我只需要它在谷歌浏览器中工作,因为这是Chrome扩展.

javascript selection contenteditable

104
推荐指数
5
解决办法
6万
查看次数

列出节点模块的简单方法我有npm链接?

我正在寻找一个命令,列出我有npm link本地副本的全局模块的名称,还列出了本地路径.

实际上,所有全局安装模块的列表会更好,其中npm link'd'会以某种方式标记.

node.js npm

104
推荐指数
6
解决办法
4万
查看次数

如何将普通对象转换为ES6映射?

出于某种原因,我无法在MDN文档中找到这个简单的东西(也许我只是错过了它).

我希望这可行:

const map = new Map({foo: 'bar'});

map.get('foo'); // 'bar'
Run Code Online (Sandbox Code Playgroud)

......但是第一行抛出 TypeError: (var)[Symbol.iterator] is not a function

如何从普通对象制作地图?我是否真的必须先将其转换为键值对数组?

javascript ecmascript-6

100
推荐指数
6
解决办法
6万
查看次数

将HTML标记转义为HTML实体的最快方法?

我正在写一个Chrome扩展程序,包括做了很多消毒的字符串:下面的工作可能通过转换包含HTML标签,<,>&&lt;,&gt;&amp;分别.

(换句话说,和PHP一样htmlspecialchars(str, ENT_NOQUOTES)- 我认为没有必要转换双引号字符.)

这是迄今为止我发现的最快的功能:

function safe_tags(str) {
    return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') ;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我必须一次性运行几千个字符串时,仍然存在很大的滞后.

任何人都可以改进吗?它主要用于10到150个字符之间的字符串,如果这有所不同的话.

(我有一个想法是不打扰编码大于号 - 这会有任何真正的危险吗?)

html javascript regex string performance

93
推荐指数
7
解决办法
13万
查看次数

我应该.我的测试吗?

我究竟应该投入.npmignore什么?

测试?好像.travis.yml,.jshintrc?运行模块时不需要的任何东西(自述文件除外)?

我找不到任何关于此的指导.

node.js npm npmignore

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

定位位置:当前处于"卡住"状态的粘性元素

position:sticky现在可以在某些移动浏览器上运行,因此您可以使菜单栏与页面一起滚动,但只要用户滚过它就会粘到视口顶部.

但是,如果您想要在粘贴的菜单栏中稍微重新设置,只要它现在"粘住",该怎么办?例如,您可能希望条形图在滚动页面时具有圆角,但是一旦它粘贴到视口顶部,您就想要摆脱顶部圆角,并在下面添加一点阴影它.

是否存在任何类型的伪选择器(例如::stuck)来定位具有position: sticky 并且当前正在粘附的元素?或者浏览器供应商在管道中有这样的东西吗?如果没有,我会在哪里申请?

NB.javascript解决方案对此不利,因为在移动设备上,scroll当用户松开手指时,通常只会收到一个事件,因此JS无法知道滚动阈值通过的确切时刻.

css css-position css-selectors css3

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

"锁定"JavaScript对象的任何性能优势?

JavaScript 1.8.5(ECMAScript 5)添加了一些有趣的方法,可以防止将来修改传递的对象,具有不同程度的彻底性:

据推测,这些问题的关键在于捕获错误:如果您知道在某个点之后不想修改对象,则可以将其锁定,以便在以后无意中尝试修改时会抛出错误.("use strict";假设你已经完成了.)

我的问题:在现代JS引擎(如V8)中,使用上述方法锁定对象时是否有任何性能优势(例如,更快的属性查找,减少内存占用)?

(另请参阅John Resig的好解释 - 但不提及性能.)

javascript ecmascript-5 javascript-1.8

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

在JavaScript中将数字转换为基数为64的最快方法?

在JavaScript中,您可以将数字转换为具有特定基数的字符串表示,如下所示:

(12345).toString(36) // "9ix"
Run Code Online (Sandbox Code Playgroud)

...你可以将它转换回这样的常规数字:

parseInt("9ix", 36) // 12345
Run Code Online (Sandbox Code Playgroud)

36是您可以指定的最高基数.它显然使用了字符0-9a-z数字(总共36个).

我的问题:什么是一个数字转换为基64表示以最快的方式(例如,使用A-Z,并-_对额外的28位数字)?


更新:有四个人发布了回复,说这个问题是重复的,或者我正在寻找Base64.我不是.

" Base64 "是一种在简单的ASCII字符集中编码二进制数据的方法,使其可以安全地通过网络等传输(因此纯文本系统不会使二进制文件乱码).

那不是我要问的.我问的是将数字转换为基数64字符串表示.(JavaScript toString(radix)会自动为任何高达36的基数执行此操作;我需要一个自定义函数来获取基数64.)


更新2:以下是一些输入和输出示例......

0   ? "0"
1   ? "1"
9   ? "9"
10  ? "a"
35  ? "z"
61  ? "Z"
62  ? "-"
63  ? "_"
64  ? "10"
65  ? "11"
128 ? "20"
etc.
Run Code Online (Sandbox Code Playgroud)

javascript

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

upload()和putObject()之间的区别是将文件上传到S3?

在aws-sdk的S3课堂上,upload()和之间的区别是putObject()什么?他们似乎做同样的事情.为什么我更喜欢一个而不是另一个?

amazon-s3 amazon-web-services

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