Tag: JavaScript

我如何匹配多个匹配的正则expression式类似于PHP的preg_match_all()?

我正试图parsing由&或&分隔的key = value对组成的url编码的string& 。 以下仅匹配第一个匹配项,将键和值拆分为单独的结果元素: var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/) string'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果是: ['1111342', 'Adam%20Franco'] 使用全局标志“g”将会匹配所有的匹配项,但是只返回完全匹配的子串,而不是分离的键和值: var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g) string'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果是: ['1111342=Adam%20Franco', '&348572=Bob%20Jones'] 虽然我可以分割string和分开每个键/值对,是否有任何方式使用JavaScript的正则expression式支持匹配模式/(?:&|&)?([^=]+)=([^&]+)/类似于PHP的preg_match_all()函数? 我打算以某种方式获得结果的子比赛分离如下: [['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']] 要么 [['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]

我如何判断一个对象是否是一个Promise?

无论是ES6承诺还是蓝鸟承诺,Q承诺等等。 我如何testing以查看给定对象是否是Promise?

对一个开关case语句使用两个值

在我的代码中,程序根据用户input的文本执行某些操作。 我的代码如下所示: switch (name) { case text1: { //blah break; } case text2: { //blah break; } case text3: { //blah break; } case text4: { //blah break; } 但是,案例text1和text4的代码是相同的。 因此,我想知道是否可以实现类似的东西 case text1||text4: { //blah break; } 我知道|| 运算符将不会在case语句中工作,但有什么类似的我可以使用。

获取json对象的大小

我有一个json对象,得到由AJAX请求返回,我有一些麻烦的.length因为它保持返回undefined 。 只是想知道我是否正确使用它: console.log(data.length); console.log(data.phones.length); 即使它们是有效的对象,它们也都返回undefined 。 更新: 返回的JSON对象的示例: {"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}

(NaN!= NaN)和(NaN!== NaN)有什么区别?

首先我想提一下,我知道isNaN()和Number.isNaN()是如何工作的。 我正在阅读David Flanagan的“ The Definite Guide” ,他给出了一个如何检查值是否为NaN的例子: x !== x 当且仅当x是NaN这将导致true 。 但是现在我有一个问题:他为什么要严格比较呢? 因为它似乎 x != x performance方式相同。 是否安全地使用两个版本,或者我缺less一些在JavaScript中的值,将返回为x !== x和为x != x false ?

Backbone.js获取参数

按照文档 ,我做了: var collection = new Backbone.Collection.extend({ model: ItemModel, url: '/Items' }) collection.fetch({ data: { page: 1} }); url竟然是: http://localhost:1273/Items?[object%20Object] 我期待像http://localhost:1273/Items?page=1 那么如何在获取方法中传递参数?

Javascript date.getYear()在2011年返回111?

我有这个JavaScript自动设置一个datefilter到上个月的第一天和最后一天: $(document).ready(function () { $("#DateFrom").datepicker({ dateFormat: 'dd/mm/yy' }); $("#DateTo").datepicker({ dateFormat: 'dd/mm/yy' }); var now = new Date(); var firstDayPrevMonth = new Date(now.getYear(), now.getMonth() – 1, 1); var firstDayThisMonth = new Date(now.getYear(), now.getMonth(), 1); var lastDayPrevMonth = new Date(firstDayThisMonth – 1); $("#DateFrom").datepicker("setDate", firstDayPrevMonth); $("#DateTo").datepicker("setDate", lastDayPrevMonth); }); 但now.getYear()返回111,而不是预期的2011年。是否有什么明显的我错过了?

jQuery UI对话框 – 缺lessclosures图标

我正在使用自定义的jQuery 1.10.3主题。 我从主题滚轮下载了每一个笔直的内容,而且我故意没有改变任何东西。 我创build一个对话框,我得到一个空的灰色广场,closures图标应该是: 我比较了在我的页面上生成的代码: <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> <spanid="ui-id-2" class="ui-dialog-title">Title</span> <button class="ui-dialog-titlebar-close"></button> </div> 到在Dialog Demo页面上生成的代码: <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> <span id="ui-id-1" class="ui-dialog-title">Basic dialog</span> <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close"> <span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span> <span class="ui-button-text">close</span> </button> </div> 编辑:代码的不同部分是由jQueryUI 生成的,不是我,所以我不能只是添加span标签没有编辑jqueryui js文件,这似乎是一个坏/不必要的select,以实现正常的function。 以下是用于生成代码部分的JavaScript: this.element.dialog({ appendTo: "#summary_container", title: this.title(), closeText: "Close", […]

地图拼贴algorithm

地图 我正在用Javascript制作一个基于图块的RPG游戏,使用perlin noise heightmaps,然后根据噪音的高度分配一个图块types。 地图最终看起来像这样(在小地图视图)。 我有一个相当简单的algorithm,它提取图像上的每个像素的颜色值,并根据其对应于平铺字典中的平铺的(0-255)之间的位置将其转换为整数(0-5)。 然后这个200×200数组传递给客户端。 然后,引擎根据数组中的值确定拼贴,并将其绘制到canvas上。 所以,我最终会看到有趣的世界,这些世界具有逼真的外表特征:山脉,海洋等 现在接下来我要做的是应用某种混合algorithm, 如果邻居不是同一types的话 ,就会导致图块无缝融合到邻居中。 上面的示例地图是玩家在小地图中看到的。 在屏幕上,他们看到由白色矩形标记的部分的渲染版本; 其中瓷砖是与他们的图像,而不是单一的彩色像素呈现。 这是用户在地图上看到的示例,但与上面显示的视口不同。 正是在这种观点下,我希望过渡发生。 algorithm 我想出了一个简单的algorithm,它将遍历视口内的地图,并在每个图块的顶部渲染另一个图像,并将其提供给不同types的图块。 (不改变地图!只是渲染一些额外的图像。)algorithm的想法是分析当前瓦片的邻居: 这是引擎可能需要渲染的一个示例场景,当前的tile是用X标记的。 一个3×3数组被创build,并且它周围的值被读入。所以对于这个例子,数组看起来像。 [ [1,2,2] [1,2,2] [1,1,2] ]; 然后,我的想法是为可能的瓷砖configuration制定一系列案例。 在一个非常简单的层面上: if(profile[0][1] != profile[1][1]){ //draw a tile which is half sand and half transparent //Over the current tile -> profile[1][1] … } 这给出了这个结果: 它从[0][1]到[1][1] ,但不是从[1][1]到[2][1]的过渡,其中硬边缘仍然存在。 所以我想,在这种情况下,一个angular落瓦片将不得不被使用。 我创build了两个3×3的精灵图表,我认为这些图表将会包含所有可能需要的图块组合。 […]

不能摆脱标题X-Powered-By:Express

我在expressj上运行nodejs上的服务器。 我似乎无法摆脱标题: X-Powered-By:Express 我想知道是否有办法摆脱这个标题,还是我必须忍受它?