Javascript 替换字符串中的单词和字符
我正在研究RegExp函数的功能,并尝试创建以下字符串: api/seaarch/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/LGW/null api/seaarch/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/LGW/null 由此: /api/search/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/undefined/undefined/undefined/undefined/undefined/undefined/undefined/undefined/undefined/^^undefined^undefined^undefined^undefined^undefined/undefined^undefined^undefined^undefined^undefined^undefined^undefined/undefined^undefined^undefined^undefined^undefined^undefined^undefined/undefined^undefined^undefined^undefined^undefined^undefined^undefined/LGW/null /api/search/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/undefined/undefined/undefined/undefined/undefined/undefined/undefined/undefined/undefined/^^未定义^未定义^未定义^未定义^未定义^未定义^未定义^未定义^未定义^未定义^未定义^未定义/u未定义^undefined^未定义^undefined^未定义^undefined^未定义/LGW/nullJavascript 替换字符串中的单词和字符,javascript,regex,Javascript,Regex,我正在研究RegExp函数的功能,并尝试创建以下字符串: api/seaarch/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/LGW/null api/seaarch/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/LGW/null 由此: /api/search/redirect/complete/127879/2013-11-27/4-12-2013/7/2/0/0/u
我知道
\bundefined\b\^
删除“undefined^”和undefined\b\//code>删除“undefined/”,但如何将它们组合在一起?在这种情况下,由于^
或//code>在同一位置跟随undefined
,因此可以使用字符类:
str = str.replace(/\bundefined[/^]+/g, '');
注意:^
在字符类内外都是特殊的,但方式不同。在字符类([…]
)中,只有当它是第一个字符时才是特殊的,因此我没有将它作为上面的第一个字符
还要注意结尾处的+
,表示^
或/
中的“一个或多个”。如果没有这一点,因为有两个double^
,结果是^
如果你想变得有点偏执(我承认我可能会),你可以在character类中避开/
。对我来说,如果你不这样做,Chrome的实现也能起作用,但是尝试遵循规范中的模式定义是…令人厌倦的…所以我真的不知道是否有任何实现会尝试结束character类中的/
表达式。所以关于逃跑:
str = str.replace(/\bundefined[\/^]+/g, '');
不仅仅是^
,它是\^
,它是转义的,所以一个字面的^
@beerbajay:(你的意思是在问题中。)谢谢,我有点误解了。