草庐IT

FILTER_VALIDATE_REGEXP

全部标签

Javascript RegExp 非捕获组

我正在编写一组正则表达式来将CSS选择器转换为ID和类数组。例如,我希望'#foo#bar'返回['foo','bar']。我一直在努力实现这一目标"#foo#bar".match(/((?:#)[a-zA-Z0-9\-_]*)/g)但当非捕获前缀?:应忽略#字符时,它会返回['#foo','#bar']。是否有比对每个返回字符串进行切片更好的解决方案? 最佳答案 您可以在循环中使用.replace()或.exec()来构建数组。使用.replace():vararr=[];"#foo#bar".replace(/#([a-zA-Z

javascript - Regexp.match.length 如果找不到则返回 NULL

我有一个JS正则表达式。vart1=str.match(/\[h1\]/g).length;如果str包含单词[h1]它工作正常,否则它会显示错误!如何解决问题? 最佳答案 vart1=(str.match(/\[h1\]/g)||[]).length; 关于javascript-Regexp.match.length如果找不到则返回NULL,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

javascript - 为什么相同的 RegExp 表现不同?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InterestingtestofJavascriptRegExpRegularexpressiontestcan'tdecidebetweentrueandfalse(JavaScript)Exampleofissue.内联运行时,结果如我所料。但是当存储为变量时,它会跳过中间跨度元素。//InlineRegExpfunctiongetToggleClasses(){vartoggler=[],elements=document.getElementsByTagName("*"),i=0,len=eleme

Javascript DataTables - filter() 函数未按预期工作

我正在使用DataTablesjavscript库,我正在尝试根据数值是否大于60来过滤掉一行。我正在尝试遵循这个例子:http://datatables.net/reference/api/filter%28%29过滤器代码如下所示:table.column(3).data().filter(function(value,index){returnvalue>60?true:false;})问题是所有行仍然可见,根本没有进行过滤。即使我的函数只返回false,所有行仍然可见。这是怎么回事?JSFiddle示例http://jsfiddle.net/1hLcpr3x/

javascript - Angular 错误 : [filter:notarray] Expected array but received: {} with a filter on an ng-repeat

我正在尝试使用ng-repeat指令使用对API的Angular请求来填充html表。首先加载html页面,然后请求获取返回响应时填充表格的数据。当我向ng-repeat指令添加过滤器时,表格被填充并且过滤器起作用,但是在我的chrome浏览器控制台中,我收到以下错误:Error:[filter:notarray]Expectedarraybutreceived:{}http://errors.angularjs.org/1.4.3/filter/notarray?p0=%7B%7DatREGEX_STRING_REGEXP(angular.js:68)atangular.js:182

javascript - 检查字符串是否是 Javascript RegExp 的前缀

我在Javascript中定义了一个正则表达式,现在用户正在输入一个字符串。我想告诉他,如果他继续输入或者他已经走错了路,他的字符串是否仍然可以匹配RegExp。例如:varre=/a*b/;"a".isPrefixOf(re);//true"x".isPrefixOf(re);//falseisPrefixOf的实现会是什么样子?更新:感谢您的回答,正如brad所建议的那样,使正则表达式成为前缀证明似乎是一个很好的解决方法。但我仍在努力寻找通用解决方案。也许这样:我们创建一个新的正则表达式,用户输入后跟.*。这个正则表达式描述了用户仍然可以输入的所有单词。如果这个创建的正则表达式和原

javascript - 在 jQuery 中使用 filter() 更有效,还是只在 each() 中使用?

我目前有代码通过jQuery提取数据,然后使用each方法显示它。但是,我遇到了排序问题,所以我研究了在sort之前使用并添加了jQuery的filter方法(这是有道理的)。我现在正在考虑删除sort,我想知道我是否应该按原样保留filter调用,还是将其移回每个。jQueryAPIdocumentationforfilter中的示例坚持样式结果,而不是文本内容的输出(具体来说,不使用each())。文档目前指出“[t]他提供的选择器针对每个元素进行了测试[...]”,这让我相信做一个filterandeach会导致未过滤的元素被循环两次,而如果仅在each循环中进行检查则只会循环一

javascript - 性能问题 : String. 拆分然后在数组上走,还是RegExp?

我将在行分隔字符串上做一些工作。哪个更快,是先通过String.split拆分文本然后遍历结果数组,还是直接通过regexp遍历整个文本并在途中构建最终数组? 最佳答案 好吧,获得答案的最佳方法是花2分钟编写一个循环,双向执行一千次,然后检查firebug看看哪个更快;)在处理MXHR时,我不得不优化大量字符串处理,根据我的经验,在当前浏览器中,纯字符串方法比RegExp快得多。尽可能在最短的字符串上使用RegExp,并尽可能使用字符串方法。例如,我在当前代码中使用了这个小数字:varmime=mimeAndPayload.shif

javascript - JQuery grep(...) VS 原生 JavaScript filter(...) 函数性能

我测量了这两个函数的执行时间:jQuerygrep功能原生JavaScriptfilter功能已使用Chrome配置文件工具测量了以下方法的执行情况://jQueryGREPfunctionfunctionalternative1(words,wordToTest){return$.grep(words,function(word){returnwordToTest.indexOf(word)!=-1;});}//NativejavascriptFILTERfunctionfunctionalternative2(words,wordToTest){returnwords.filter

javascript - jQuery 验证插件 : validate decimal number with comma as decimal separator

HTML:Required,decimalnumber: 最佳答案 您可以使用模式规则来传递自定义正则表达式模式,例如$("#myform").validate({//fordebugonlydebug:true,rules:{field:{required:true,pattern:/^(\d+|\d+,\d{1,2})$/}},messages:{field:{pattern:'Pleaseusetheproperpattern'}}});演示:Fiddle如果是重复模式创建自定义验证规则jQuery.validator.add