拿这个正则表达式:/^[^abc]/.这将匹配字符串开头的任何单个字符,a,b或c除外.
如果你*在它之后添加- /^[^abc]*/- 正则表达式将继续将每个后续字符添加到结果中,直到它遇到a a,或 b,或 c.
例如,使用源字符串"qwerty qwerty whatever abc hello",表达式将匹配"qwerty qwerty wh".
但是如果我想要匹配的字符串呢? "qwerty qwerty whatever "
...换句话说,我怎样才能匹配到(但不包括)确切序列的所有内容 "abc"?
在JavaScript中,可以以编程方式选择input或textarea元素中的文本.您可以使用ipt.focus(),然后选择其内容来聚焦输入ipt.select().您甚至可以选择特定范围ipt.setSelectionRange(from,to).
我的问题是:有没有办法在contenteditable元素中做到这一点?
我发现我可以做elem.focus(),把插入符号放在一个contenteditable元素中,但随后运行elem.select()不起作用(也没有setSelectionRange).我在网上找不到任何关于它的东西,但也许我正在寻找错误的东西......
顺便说一下,如果它有所不同,我只需要它在谷歌浏览器中工作,因为这是Chrome扩展.
我正在寻找一个命令,列出我有npm link本地副本的全局模块的名称,还列出了本地路径.
实际上,所有全局安装模块的列表会更好,其中npm link'd'会以某种方式标记.
出于某种原因,我无法在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
如何从普通对象制作地图?我是否真的必须先将其转换为键值对数组?
我正在写一个Chrome扩展程序,包括做了很多消毒的字符串:下面的工作可能通过转换包含HTML标签,<,>并&到<,>并&分别.
(换句话说,和PHP一样htmlspecialchars(str, ENT_NOQUOTES)- 我认为没有必要转换双引号字符.)
这是迄今为止我发现的最快的功能:
function safe_tags(str) {
return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我必须一次性运行几千个字符串时,仍然存在很大的滞后.
任何人都可以改进吗?它主要用于10到150个字符之间的字符串,如果这有所不同的话.
(我有一个想法是不打扰编码大于号 - 这会有任何真正的危险吗?)
我究竟应该投入.npmignore什么?
测试?好像.travis.yml,.jshintrc?运行模块时不需要的任何东西(自述文件除外)?
我找不到任何关于此的指导.
position:sticky现在可以在某些移动浏览器上运行,因此您可以使菜单栏与页面一起滚动,但只要用户滚过它就会粘到视口顶部.
但是,如果您想要在粘贴的菜单栏中稍微重新设置,只要它现在"粘住",该怎么办?例如,您可能希望条形图在滚动页面时具有圆角,但是一旦它粘贴到视口顶部,您就想要摆脱顶部圆角,并在下面添加一点阴影它.
是否存在任何类型的伪选择器(例如::stuck)来定位具有position: sticky 并且当前正在粘附的元素?或者浏览器供应商在管道中有这样的东西吗?如果没有,我会在哪里申请?
NB.javascript解决方案对此不利,因为在移动设备上,scroll当用户松开手指时,通常只会收到一个事件,因此JS无法知道滚动阈值通过的确切时刻.
JavaScript 1.8.5(ECMAScript 5)添加了一些有趣的方法,可以防止将来修改传递的对象,具有不同程度的彻底性:
据推测,这些问题的关键在于捕获错误:如果您知道在某个点之后不想修改对象,则可以将其锁定,以便在以后无意中尝试修改时会抛出错误.("use strict";假设你已经完成了.)
我的问题:在现代JS引擎(如V8)中,使用上述方法锁定对象时是否有任何性能优势(例如,更快的属性查找,减少内存占用)?
(另请参阅John Resig的好解释 - 但不提及性能.)
在JavaScript中,您可以将数字转换为具有特定基数的字符串表示,如下所示:
(12345).toString(36) // "9ix"
Run Code Online (Sandbox Code Playgroud)
...你可以将它转换回这样的常规数字:
parseInt("9ix", 36) // 12345
Run Code Online (Sandbox Code Playgroud)
36是您可以指定的最高基数.它显然使用了字符0-9和a-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) 在aws-sdk的S3课堂上,upload()和之间的区别是putObject()什么?他们似乎做同样的事情.为什么我更喜欢一个而不是另一个?
javascript ×5
node.js ×2
npm ×2
regex ×2
amazon-s3 ×1
css ×1
css-position ×1
css3 ×1
ecmascript-5 ×1
ecmascript-6 ×1
html ×1
npmignore ×1
performance ×1
selection ×1
string ×1