我正在尝试使用正则表达式在 Javascript 中拆分字符串。我的代码如下:
var status = "This is a test http://yfrog.com/5y6eruj";
var regexp = /(http:\/\/yfrog\.com(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
matchParts = status.split(regexp);
alert(matchParts);
在 Chrome 和 FF 中,当我提醒 matchParts
时,它是一个包含文本和 url 的数组。然而在 IE 中,matchParts
只是文本,而 url 已经消失了!
要么 IE 中有一个奇怪的错误,要么我的正则表达式不太正确...请帮忙!
最佳答案
我不会为此使用“split”,因为它有问题:http://blog.stevenlevithan.com/archives/cross-browser-split
尝试
var matchParts = regexp.exec(status);
相反。您可能需要稍微修改一下正则表达式(我会尝试并更新)。
编辑 如果您将 (.*)
添加到正则表达式的开头,您也会选择前导文本。
关于Internet Explorer 中的 Javascript RegEx 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2401914/