草庐IT

javascript - 将变量传递给 Gatsby graphql 查询中的正则表达式

我有以下查询,它正在接收变量$tag。目前,我正在根据其frontmatter.keywords的值过滤结果。keywords是逗号分隔的字符串,所以我需要使用正则表达式来检查其中是否包含$tag,但是我不知道如何传递正则表达式中的变量。如果我将一个值硬编码到正则表达式中(如在下面的代码中我硬编码了/example/,则过滤有效。如果我将example替换为$tag我收到一个错误:GraphQLError:Variable"$tag"isneverusedinoperation"TagQuery".exportconstpageQuery=graphql`queryTagQuery($

javascript - 在所有现代浏览器中,javascript 正则表达式中花括号的处理是否相同?

JavaScript正则表达式中的大括号用于表示量词。所以写a{2,4}将匹配aa、aaa和aaaa。但是如果你像这样错误地输入这个量词:x{1,x}至少在Firefox中,它将匹配文字文本“x{1,x}”。这种行为对现代浏览器来说很常见吗?ECMA标准禁止这种行为并要求转义大括号。(背景:我必须在工作中为javascript正则表达式编写一个解析器。) 最佳答案 我不知道JavaScript和浏览器,但这是我所期望的行为,并且我过去在正则表达式中看到过。所以我测试了不同的正则表达式引擎的行为:C#:以这种方式运行Perl:以这种方

javascript - 替换文本中多个单词的有效方法

我需要使用JavaScript从约100000字的文档中高效删除约10000个关键字,其中约1000个将是关键字。你会建议什么方法?大量正则表达式是否实用?或者我应该只是遍历文档字符以查找关键字(无聊)?编辑:好点-只有整个单词,而不是部分。还有一些关键字包含空格。我正在尝试在所有客户端执行此操作,以减轻后端的压力。 最佳答案 使用正则表达式可能是一个不错的选择:varwords=['bon','mad'];'joebonjoemad'.replace(newRegExp('('+words.join('|')+')','g'),'

javascript - 是否可以修改现有 RegExp 上的标志?

我的代码收到一个RegExp对象(不受我控制)。它不是全局性的,但我需要它。目前我正在这样做:if(!regex.global){varflags='g';if(regex.ignoreCase)flags+='i';if(regex.multiline)flags+='m';if(regex.sticky)flags+='y';regex=newRegExp(regex.source,flags);}...因为我想不出任何其他方法。regex.global没有二传手。regex.compile(new_pattern)已弃用,取而代之的是newRegExp(new_pattern)r

javascript - 为什么/^(.+)+Q$/.test ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") 需要这么长时间?

当我运行时/^(.+)+Q$/.test("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")在Chrome或IE中,大约需要10秒才能完成。(Firefox几乎可以立即对其进行评估。)为什么要这么久?(Firefox为何/如何能够如此快速地做到这一点?)(当然,我从来没有运行过这个特定的正则表达式,但我在http://daringfireball.net/2010/07/improved_regex_for_matching_urls的URL正则表达式中遇到了类似的问题,它似乎归结为这个,即有某些URL会导致浏览器锁定)例如:varre=/\b((?:https?:\/

javascript - 如何将 ruby​​ 正则表达式翻译成 javascript? - (?i-mx :. .) 和 Rails 3.0.3

我使用validates_format_of方法来检查电子邮件格式:validates_format_of:email,:with=>/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i我还使用livevalidation插件来验证表单,所以在我的代码中我得到:(?i-mx:^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$)Javascript无法读取此正则表达式。我如何或在哪里可以将此正则表达式更改为原来的样子:/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i?

javascript - JavaScript 的正则表达式符号有什么问题?

我正在阅读DouglasCrockford的网页,JavaScript:TheWorld'sMostMisunderstoodProgrammingLanguage,我不禁注意到,在设计错误下,他提到了“文字正则表达式的表示法”。他到底在说什么?JavaScript的正则表达式符号有什么问题,为什么? 最佳答案 可能与它强制您转义/字符这一事实有关,也许他想要一个更独特的字符来用作表示法。/test//是无效的,而/test\//是一个有效的正则表达式。而在某些语言中,您实际上可以在字符串中指定表示字符,例如:$regex='#te

javascript - 允许非 ASCII 字符的(类似 twitter 的)主题标签的正则表达式

我想要一个正则表达式来匹配一个像Twitter中那样的简单主题标签(例如#someword)。我希望它也能识别非标准字符(例如西类牙语、希伯来语或中文中的字符)。这是我最初的正则表达式:(^|\s|\b)(#(\w+))\b-->但它不识别非标准字符。然后,我尝试使用XRegExp.js,它有效,但运行速度太慢。有什么建议吗? 最佳答案 最终我找到了这个:twitter-text.js有用的链接,这基本上就是Twitter解决这个问题的方式。 关于javascript-允许非ASCII字

自动格式化 Pattern 的 JavaScript RegExp

我在stackflow社区看到很多格式化电话或数字(逗号和小数)的函数,比如这个问题here和别的。这是我想要的:第1步:为这样的模式维护库:varlibrary={fullDate:{pattern:/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/,error:"InvalidDateformat.UseYYYY-MM-DDformat."},fullDateTime:{pattern:/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}[0-9]{1,2}:[0-9]{1,2}$/,error:"InvalidDateTimeformat.UseYY

javascript - .js 和 .jsx 的 Webpack 正则表达式测试

我正在使用webpack并想知道是否有一种方法可以使用测试正则表达式来确定.js或.jsx文件扩展名?即test:/\.jsx?$/这行得通吗? 最佳答案 是的。test:/.jsx?$/应该是正确的方法。但是您还需要设置resolve.extensions参数以使其工作。module.exports={...resolve:{extensions:['.js','.jsx']}...} 关于javascript-.js和.jsx的Webpack正则表达式测试,我们在StackOverf