Internet Explorer 中的 Javascript RegEx 问题

标签 javascript regex

我正在尝试使用正则表达式在 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/

相关文章:

javascript - 将多张照片发布到一个帖子

javascript - 单击将标签锚定到 Chart.js 中的相应部分 HTML

python - 使用 REGEX 匹配 Python 中行之间的元素

ruby-on-rails - 当按钮的名称以相同的词开头时,如何使用 Cucumber/webrat 单击特定按钮?

Javascript JSON 搜索任何匹配项

javascript - for循环不返回结果

javascript - 单击按钮打开移动键盘

PHP - 用于删除所有事件属性的正则表达式

javascript - 正则表达式匹配不在数组中的逗号(用方括号括起来)

python - Django url正则表达式的问题