exec()返回值是一个对象,未匹配返回null。可以通过 pattern.lastIndex = 0来重置开始匹配的位置。 var pattern = /Java/g; var text = "JavaScript is more fun than Java!"; var result; while((result = pattern.exec(text)) != null) { alert("Matched '" + result[0] + "'" + " at position " + result.index + "; next search begins at " + pattern.lastIndex); }
match()返回值是一个数组,未匹配返回null。可以通过索引来获取正则表达式中括号内匹配得到的内容。 var url = /(\w+):\/\/([\w.]+)\/(\S*)/; var text = "Visit my blog at http://www.example.com/~david"; var result = text.match(url); if (result != null) { var fullurl = result[0]; // Contains "http://www.example.com/~david" var protocol = result[1]; // Contains "http" var host = result[2]; // Contains "www.example.com" var path = result[3]; // Contains "~david" }