草庐IT

regexp-replace

全部标签

javascript - Chrome 浏览器中奇怪的 .replace() 行为

saadad$(".allownumericwithdecimal").live("keypresskeyup",function(event){$(this).val($(this).val().replace(/[^0-9\.]/g,''));vartext=$(this).val();if(!((event.which>=48&&event.which2)){//event.preventDefault();}}vartext=$(this).val();if((event.which>=48&&event.which2){//event.preventDefault();}if

javascript - 将上字符转换为下字符,将下字符转换为上字符(反之亦然)

这个问题在这里已经有了答案:SwapCaseonjavascript(11个答案)关闭7年前。我需要将某些字符串中的所有小写字符转换为大写字符,并将所有大写字符转换为小写字符。例如vartestString='heLLoWorld';应该是'HEllOwORLD'转换后。在不保存临时字符串的情况下,最优雅的实现方式是什么。如果能用正则表达式达到这样的效果就更好了。谢谢。

javascript - IE8 不处理希腊语中的 ignoreCase RegExps

如果我使用一些希腊月份名称并根据它们制作不区分大小写的正则表达式,它们将不会匹配大写的同一月份:varnames=['Μάρτιος','Μάιος','Ιούνιος','Ιούλιος','Αύγουστος','Νοέμβριος'];varpre=document.getElementsByTagName('pre')[0];vari;for(i=0;i在Ie8中,这会打印名称,然后打印false。在其他浏览器中,它打印为真。 最佳答案 只需使用.toUpperCase()而不是.toLocaleUpperCase()。后者

javascript - 使用 Javascript RegExp 用迭代数字替换每个匹配项

我想用一个迭代数字替换字符串中的空行例如替换字符串:"MyfirstlineMysecondlineMythirdline"与"1Myfirstline2Mysecondline3Mythirdline"我可以匹配和替换这些行使用varnewstring=TestVar.replace(/(^|\n\n)/g,"\nhello\n");但是,我正在努力添加一个函数来为每个函数添加一个迭代数。你能帮忙吗?TIA,Gids 最佳答案 是的,您可以在javascript中做到这一点。您只需将一个函数作为第二个参数传递给replace。va

JavaScript RegExp 匹配忽略 HTML 的文本

是否可以在“Thedogisreallyreallyfat!”中匹配“狗真的很胖”,并在其周围添加“WHATWASMATCHED”?我并不是特别指这个意思,但通常能够忽略HTML搜索文本,将其保留在最终结果中,并在其周围添加上面的span吗?编辑:考虑到HTML标签重叠问题,是否可以匹配一个短语并在每个匹配的单词周围添加跨度?这里的问题是,当“dog”不在搜索上下文中时,我不想匹配它,在这种情况下,“thedogreallyreallyfat”。 最佳答案 更新:这是一个工作fiddle,可以满足您的需求。但是,您需要更新htmlT

JavaScript replace() 方法美元符号

我有一个像aman/gupta这样的字符串,我想将它替换为aman$$gupta,为此我正在使用JavaScriptreplace方法如下:leta="aman/gupta"a=a.replace("/","$")console.log(a)//'aman$gupta'a="aman/gupta"a=a.replace("/","$$")console.log(a)//'aman$gupta'a="aman/gupta"a=a.replace("/","$$$")console.log(a)//'aman$$gupta'为什么第一种情况和第二种情况相同,而当我使用$$$而不是$$时却得

javascript - 为什么 (new RegExp ("\\w") ===/\w/) 在 JS 中是假的?

我在Chrome的控制台中尝试了以下操作:varr1=newRegExp("\\w");//→/\w/varr2=/\w/;//→/\w/r1===r2;//→falser1==r2;//→falser1.toString()===r2.toString();//→truer1.source===r2.source;//→true我不明白为什么会那样。 最佳答案 它们是两个不同的RegExp实例,因此通过直接将它们与==或===进行比较,您正在比较两个不相等的引用,导致false。但是当您比较它们的toString()序列化或它们的

javascript - 使用 JavaScript 的 replace() 方法对变量进行全局切换

在我无法弄清楚它如何单独工作之后,我无法举出任何例子。我想要做的就是获取一个已分配给一个值的字符串,并将其用作所有匹配项的替换匹配字符串。varreplacement='i';vartext='tieiam';text=text.replace(replacement,'');//'teiam'text=text.replace(/tieiam/g,'');//'team'如何一起使用它们? 最佳答案 你想要的是使用RegExp对象:text=text.replace(newRegExp(replacement,'g'),'');S

javascript - RegExp.test() 根据调用方式(在哪里?)为相同的 str 返回不同的结果

我刚刚注意到一个奇怪的JS行为导致了一个烦人的错误..基本上,我在if语句中使用RegExp对象(.test()方法)测试str。对于相同的测试字符串,如果在我的代码中只有一个if,则regexp.test()返回true并且可以正常进入if。问题是如果我有一个else(我需要它),出于某种原因,对于相同的str测试,regexp.test()返回false并且它转到else...这是什么行为?我已经运行了很多测试...TL/DR:对于在同一个RegExp上测试的同一个字符串,如果只有一个IF语句,则regexp.test()返回true,但如果我有一个else,它返回false。so

javascript - val.replace(/[^a-zA-Z_-0-9]/g, '' ) 产生 SyntaxError : invalid range in character class

我需要替换所有与a-zA-Z_-0-9范围不匹配的字符。所以我做了val.replace(/[^a-zA-Z_-0-9]/g,'')但得到了错误。我怎么能咬这个?谢谢 最佳答案 如果要在字符类中包含减号“-”,则必须将其放在范围末尾:val.replace(/[^a-zA-Z_0-9-]/g,'') 关于javascript-val.replace(/[^a-zA-Z_-0-9]/g,'')产生SyntaxError:invalidrangeincharacterclass,我们在Sta