jjzjj

javascript匹配()错误

我正在尝试计算pre元素的行数,我正在使用它:varnumlines=$('#mypreelement').text().match(/\n\r?/g).length+1;它可以工作,但在某些情况下我会遇到错误Error:$('#mypreelement').text().match(/\n\r?/g)isnull这只发生在某些页面上,但这些页面与其工作的页面没有任何不同,当然除了内容之外...为什么? 最佳答案 这意味着它无法匹配它们中的任何一个,并且null没有length属性。所以试试这个...if(varlines=$('#

JavaScript(正则表达式): excluding matches from output

我有这个文本:nisinontext600elit其中600是动态添加的。我怎样才能得到它?varstr=('nisinontext600elit').match(/text\d+/);alert(str);这会提醒text600,我如何才能只提醒600而无需额外替换单词text(如果可能的话)?感谢任何帮助,谢谢! 最佳答案 varstr=('nisinontext600elit').match(/text(\d+)/);alert(str[1]); 关于JavaScript(正则表达

javascript - 不能将 String.prototype.match 用作 Array.some 的函数吗?

这行不通:vars='^foo';console.log(['boot','foot'].some(s.match));UncaughtTypeError:String.prototype.matchcalledonnullorundefined但是这样做:vars='^foo';console.log(['boot','foot'].some(function(i){returni.match(s)}));这是为什么?我以某种方式想象String.prototype.match函数太“原始”之类的,但究竟是为什么呢?因为我没有使用ES2015,所以第二个版本看起来很冗长。有替代方案吗

javascript - 如何使用正则表达式仅查找数字值而不混合字母值?

我有一个等式:+8x2+10y2-99+5=99。我只需要分开数值而不混合字母字符。我使用正则表达式str.match(/[0-9]/g)获取所有数值,但对于上面的等式,结果应该是-99,5,99。 最佳答案 您可以使用可选的连字符和wordboundaries仅匹配给定表达式中的数字:varstr='+8x2+10y2-99+5=99';varmatches=str.match(/-?\b\d+\b/g);document.writeln(''+matches.join(',')+'');输出:-99,5,99RegExDemo

JavaScript/jQuery - 从元素的 id 中获取一个整数

来自以下标记。SomewhereSomewhereelse有哪些选项可以使用jQuery选择器和JavaScript来获取ID中的整数?例如。$("#my-diva").click(function(){$(this).id//...somehowgrabnfrom"link-n"alert(n);}); 最佳答案 你可以试试:varn=$(this).attr('id').match(/link-(\d+)/)[1];这会获取id属性,与模式link-(\d+)匹配(这意味着link-后跟一个或多个digits),然后提取第一个匹

javascript - 迷失在翻译中 - C# 正则表达式到 JavaScript 正则表达式

我在将工作中的C#正则表达式转换为JavaScript的正则表达式实现时遇到了一些问题。这是正则表达式:([a-z]+)((\d+)([a-z]+))?,?当用于"water2cups,flour4cups,salt2teaspoon"时,您应该得到:[["water","2cups","2","cups"]["flout","4cups","4","cups"]["salt","2teaspoon","2","teaspoon"]]...确实如此。在C#中。但不是在JavaScript中。我知道实现之间存在一些细微差别。要让这个表达式在JavaScript中工作,我缺少什么?更新我像

javascript - Sequelize : Find All That Match Contains (Case Insensitive)

我想使用sequelize.js查询模型以获取包含约束的记录。我该怎么做?这是我现在拥有的:Assets.findAll({limit:10,where:["asset_namelike?",'%'+request.body.query+'%']}).then(function(assets){returnresponse.json({msg:'searchresults',assets:assets});}).catch(function(error){console.log(error);});但我收到以下错误:{error:operatordoesnotexist:charact

javascript - 期待一个条件表达式,而是看到一个赋值

我的javascript代码中有以下函数:addParam(url,param,value){vara=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;varmatch,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search)){if(param!=match[1]){str.push(match[1]+(match[2]?'='+match[2]:''));}}str.push(p

javascript - 在 JavaScript 中,如何在不影响标签的情况下替换 HTML 页面中的文本?

我正在尝试找出如何使用Javascript进行替换。我正在查看页面的整个主体,并希望替换不在HTML标记内的关键字匹配。这是一个例子:blahblahblahkeywordblahwhateverkeywordwhatevervarreplace_terms={'keyword':{'url':'http://en.wikipedia.org/','target':'_blank'}}jQuery.each(replace_terms,function(i,val){varre=newRegExp(i,"gi");$('body').html($('body').html().repl

javascript - 为什么 String.match(/\d*/) 返回一个空字符串?

有人能帮我理解为什么使用\d*返回一个包含空字符串的数组,而使用\d+返回["100"](如预期的那样)。我明白为什么\d+有效,但不明白为什么\d*不起作用。使用*会导致它返回零长度匹配吗?它究竟是如何工作的?varstr='oneto100';varregex=/\d*/;console.log(str.match(regex));//[""] 最佳答案 请记住,match正在寻找它可以找到的与给定正则表达式匹配的第一个子字符串。*意味着可能有零个或更多的东西,所以\d*意味着你正在寻找一个包含零个或多个数字的字符串。如果您输入