我在StackOverflow上看到了许多示例来获取MIME内容类型的“第二”部分。我想要的是,当提供:text / html;字符集= ISO-8859-1
我想回复:html
到目前为止我见过的正则表达式是这样的:
/[^text/]*$/
但在我的测试中,匹配的结果只是“ml”
我想要字符串中“text /”之后的所有谎言,但无论出于什么原因,我得到的只是最后两个字母。为了清楚起见,我咨询了其他一些帖子,包括:
Get second part of a string using RegEx
我认为这正是我想要的,但我的测试显示正则表达式不起作用。非常感谢任何帮助。
编辑以扩大问题范围。我正在尝试隔离jquery对象中返回的部分Content-Type。
var regex_content = /[^text/]([^;\s]+)/
var contentType = jqXHR.getResponseHeader("Content-Type");
alert(contentType.match(regex_content));
使用其他人提供的regex_content,如果内容类型为text / html,则返回html,tml;字符集= ISO-SOMENUMBERS。我想只有html匹配。
答案 0 :(得分:1)
你的正则表达式应该是:
^text/([^;\s]+)
并捕获第一组。
因为你的正则表达式中有一个/,所以使用new RegExp()
构造函数:
var re = new RegExp("^text/([^;\\s]+)");
答案 1 :(得分:0)
正则表达式的主要问题是它会单独忽略字符t
,e
,x
和/
并匹配其他字符。您希望匹配/
之后且;
之前的组,因此您的正则表达式将是
/(?:[^/]*\/)([^;]*)/
这是一个非捕获组((?:[^/]*/)
)匹配(并忽略)直到第一个/
的字符,然后是一个捕获组(([^;]*)
)来匹配并保持在第一个;
之前需要的文字。