草庐IT

javascript - jQuery 单例

我在文件中有类似test.js的内容:(function($){$.test=function(){alert('test');}})(jQuery);jQuery.test();现在,如果test.js在我的页面中加载两次,即src=test.js在两个不同的位置,它会发出两次警报。我希望它像一个单例。关于如何实现这一目标的任何想法? 最佳答案 使用条件快捷方式:(function($){!$.test&&$.test=function(){alert('test');}})(jQuery);jQuery.test();!$.te

javascript - 正则表达式测试函数不返回相同的依赖引号

我在javascript中有一个带有正则表达式的奇怪案例:varre=/[^\s]+(?:\s+|$)/g;re.test('foo');//returntruere.test("foo");//returnfalse正则表达式类型敏感吗?我的第一个目标是提取字符串的所有单词(由一个或多个空格分隔)。感谢您的帮助。朱利安 最佳答案 在Javascript正则表达式上使用g标志时,它将跟踪找到最后一个匹配项的位置,并在您下次尝试查找匹配项时从该索引开始搜索。在两次re.test()调用之间,查看re.lastIndex以了解我在说什么

用于在问号之前获取字符串的 Javascript 正则表达式(如果存在)

我有这个字符串:#test或#test?params=somethingvarregExp=/(^.*)?\?/;varmatches=regExp.exec($(this).data('target'));vartarget=matches[1];console.log(target);我总是只需要获取#test.如果没有找到问号,我粘贴的函数将返回错误。目标是始终返回#test无论是否有其他参数。如何制作返回此内容的正则表达式? 最佳答案 该字符串是否直接来自当前页面的URL?如果是这样,您可以简单地使用:window.loca

javascript - Internet Explorer 中的只读输入框错误

我有一个奇怪的错误,好吧,MSIE有。似乎它在所有主要的MSIE版本上都失败了:6、7、8和9(!)testjQuery(document).ready(function(){vartest=jQuery('#in');test.focus(function(){if(test.val()=='empty')test.val('');test.attr('readonly',false);});test.blur(function(){if(test.val()=='')test.val('empty');test.attr('readonly',true);});});让我解释一下这

javascript - 检查数据是否不可变

测试var是否包含不可变数据(即string、number、boolean)的最快最干净的方法是什么,null,undefined)?例如当vartest是可变的时,以下是合法的:vartest={};//thenext2linesworkbecause`test`hasmutabledatatest.someFun=function(){alert(this);};test.someFun();但是当vartest不可变时,它是非法的:vartest="string";//thenext2linesareinvalid,as`test`isaprimitivetest.someFun

javascript - 如何使用 JsTestDriver 测试 jquery 和 ajax 调用?

我有一个用jQuery构建的动态页面。HTML片段从mustache加载模板。这些模板是从url下载的,我想对整个html结构进行单元测试:JsTestDriver测试是:AppTest=TestCase("AppTest")AppTest.prototype.test=function(){varactualHtml="";getHtml({"title":"title","header":"header","text":"text","authors":[{"firstname":"firstname","lastname":"lastname"}]},function(html)

javascript - 根据字母对数组进行排序?

我需要根据字母对数组进行排序。我尝试了javascript的sort()方法,但它不起作用,因为我的数组由数字、小写字母和大写字母组成。有人可以帮我解决这个问题吗?谢谢例如我的数组是:["@Basil","@SuperAdmin","@Supreme","@Test10","@Test3","@Test4","@Test5","@Test6","@Test7","@Test8","@Test9","@a","@aadfg","@abc","@abc1","@abc2","@abc5","@abcd","@abin","@akrant","@ankur","@arsdarsd","@as

javascript - Sails.js:如何实际运行测试

我对sails、node和js完全陌生,所以我可能遗漏了一些明显的东西。我正在使用sails0.10.5和Node0.10.33。在sails.js文档中有一个关于测试的页面http://sailsjs.org/#/documentation/concepts/Testing,但它没有告诉我如何实际运行它们。我已经根据该文档设置了目录,添加了一个名为test/unit/controllers/RoomController.test.js的测试,现在我想让它运行。没有“sailstest”命令或类似的命令。我也没有找到任何关于如何添加任务的迹象,因此测试总是在“升sails”之前运行。

javascript - 在同一行中多次匹配字符串模式

我想在字符串中找到特定的模式。模式:(\{\$.+\$\})匹配示例:{$test$}我遇到的问题是文本在同一行上有2个匹配项。它返回一个匹配项。示例:这是一个{$test$}内容{$anothertest$}这将返回1个匹配项:{$test$}content{$anothertest$}它应该返回2个匹配项:{$test$}和{$anothertest$}注意:我使用的是Javascript 最佳答案 问题是当您使用.+时,您的正则表达式(\{\$.+\$\})本质上是贪婪的,这就是它匹配最长匹配的原因{$和}$。要解决此问题,请

javascript - Webpack 2 - babel-loader - 如何排除 node_modules?

自从我升级到Webpack2后,我的“规则”中不能有“排除”。也无法将“排除”传递给“选项”。现在正确的做法是什么?之前:{test:/\.js$/,loader:'babel-loader',exclude:/node_modules/,}现在:{test:/\.js$/,use:[{loader:'babel-loader'}]???}整个配置:constpath=require('path');//constautoprefixer=require('autoprefixer');constpostcssImport=require('postcss-import');const