草庐IT

javascript - 定义匹配除特定字符串以外的任何内容的 JavaScript 正则表达式

好吧,我现在感觉很厚。基本上,我想定义一个JavaScript正则表达式,它可以匹配任何除了的特定字符串。所以说我有字符串"dog"或"cat"我想要一个独立的正则表达式来匹配字符串"dogsled"或字符串"cattle"只是不是“狗”或“猫”本身。我试过这个,基本上是说,忽略任何以“猫”或“狗”开头的东西,这不是我需要的......varpattern=/^(?!dog|cat).+/pattern.test("cat")//false,asexpectedpattern.test("dog")//false,asexpectedpattern.test("bananananana

javascript - 正则表达式匹配单个新行。正则表达式匹配双新行

我正在尝试构建一个匹配单独换行符(\n)的正则表达式。同样,我需要另一个正则表达式来匹配双换行符(\n\n),它们不是较长的换行符的一部分,例如\n\n\n或\n\n\n\n\n\n等\n(?!\n)和\n\n(?!\n)匹配太多(它们匹配最后一个换行符)更长的换行序列)。我可以做什么? 最佳答案 由于JavaScript不支持后向断言,您需要在\之前匹配一个额外的字符n`s并记住稍后处理它(即,如果您使用正则表达式匹配修改原始字符串,则将其恢复)。(^|[^\n])\n(?!\n)匹配单个换行符加上前面的字符,并且(^|[^\n]

javascript - 如何在 JavaScript 中按大写和小写拆分字符串?

是否可以在JavaScript中按大小写拆分字符串,以便将下面的字符串(myString)转换为下面的数组(myArray):varmyString="HOWtoDOthis";varmyArray=["HOW","to","DO","this"];我试过下面的正则表达式,但它只拆分为驼峰式:.match(/[A-Z]*[^A-Z]+/g); 最佳答案 ([A-Z]+|[a-z]+)。在捕获组中多次匹配全部大写或全部小写。在这里试一试:https://regex101.com/r/bC8gO3/1

javascript - 从文本中提取 JSON

AJAX调用正在返回包含JSON字符串的响应文本。我需要:提取JSON字符串修改然后重新插入它来更新原来的字符串我不太担心第2步和第3步,但我不知道如何执行第1步。我正在考虑使用正则表达式,但我不知道我的JSON可能有多个级别嵌套对象或数组。 最佳答案 您不能使用正则表达式从任意文本中提取JSON。由于正则表达式通常是notpowerfulenoughtovalidateJSON(除非您可以使用PCRE)他们也无法匹配它-如果可以的话,他们也可以验证JSON。但是,如果您知道JSON的顶级元素始终是对象或数组,则可以采用以下方法:找

javascript - 除非在一对双引号之间,否则将字符串拆分为带有空格的单词

我想拆分这个字符串:get"something"from"anysite"数组。我已经做到了:vararray=$(this).val().replace(/\s+/g,'').split("");但我不想用引号("")分隔单词。是否可以通过简单的方式完成? 最佳答案 解决方案:varstr='get"something"from"anysite"';vartokens=[].concat.apply([],str.split('"').map(function(v,i){returni%2?v:v.split('')})).fil

javascript - 如何使用正则表达式从 Istanbul 尔文本摘要记者中提取测试范围?

GitlabCI要求您指定一个正则表达式来提取语句代码覆盖率(以便他们可以显示它)。考虑到下面的构建输出(使用jest和istanbul),我设法做到了:/Statements.*(\d+\%)/...(otherbuildoutput)===============================Coveragesummary===============================Statements:53.07%(95/179)Branches:66.67%(28/42)Functions:30.99%(22/71)Lines:50.96%(80/157)==========

javascript - 正则表达式查找所有以 = 开头并以 & 结尾的字符串

我需要在大量文本中找到=和&符号之间的所有字符串。我不希望结果字符串包含=和&,只包含它们之间的内容。 最佳答案 如果您的正则表达式引擎支持lookbehinds/lookaheads:(?否则使用这个:=(.*?)&并捕获捕获组1。如果您的正则表达式引擎不支持非贪婪匹配,请将.*?替换为[^&]*。但正如zzzzBov在评论中提到的,如果您要解析GETURL前缀,通常会有更好的本地方法来解析GET参数。例如在PHP中会有:(在php.net上找到。)编辑:您似乎在使用Javascript。将查询字符串解析为对象的Javascrip

javascript - RegEx(在 JavaScript 中查找/替换)- 匹配非字母数字字符但忽略 - 和 +

我们一直在使用以下js/regex来查找和替换除-和+之外的所有非字母数字字符outputString=outputString.replace(/[^\w|^\+|^-]*/g,"");但是它不能完全工作——它不能取代^和|人物。我不禁想知道这是否与^和|有关在正则表达式本身中用作元字符。我已经尝试切换到使用[\W|^+|^-],但它取代了-和+。我认为前瞻断言可能是答案,但我不太确定如何实现它们。有没有人知道如何完成这个? 最佳答案 字符类不进行交替,因此|是字面的,而^必须在类的开头才能生效(否则按字面处理.)使用这个:[^\

Javascript/将CSS样式字符串转换为JS对象

我们想将作为字符串输入的CSS样式转换为JS对象。例如,varinput="border:solid1px;color:red";预期的JS对象:{border:"solid1px",color:"red"}当然,样式条目的数量以及样式名称(边框、颜色、字体、z-index等...)都是无限的。谢谢。 最佳答案 一个非常简单的:varregex=/([\w-]*)\s*:\s*([^;]*)/g;varmatch,properties={};while(match=regex.exec(cssText))properties[mat

javascript - 使用拆分将字符串拆分为 2 个字符的组?

我有这个简单的字符串:“a1a2a3”是否有任何正则表达式可以与split命令一起使用,以便将字符串拆分为一对?:["a1","a2","a3"]?我已经试过了:"a1a2a3".split(/(?=..)/)但它返回["a","1","a","2","a3"]附:我可以使用Match来做到这一点,但我正在寻找(如果存在)可以帮助我使用split的正则表达式。 最佳答案 split为偶数长度的字符串:str.split(/(?=(?:..)*$)/)split对于奇数长度的字符串,最后一个条目是单个字符:str.split(/(?=