0

我想使用.split()这个特定的字符串从字符串中提取日期和用户名:

var str ='<a href="/user/xxspmxx/profile">XxSPMxX</a> on 08/30/2012';

我想要XxSPMxX一个变量和另一个变量08/30/2012

4

3 回答 3

3

仅使用split

var x = str.split('</a> on ');

var name = x[0].split('>')[1];
var date = x[1];

演示:http: //jsfiddle.net/Guffa/YUaAT/

于 2012-09-04T20:54:40.757 回答
2

我认为这不是split这项工作的正确工具。试试这个正则表达式:

var str ='<a href="/user/xxspmxx/profile">XxSPMxX</a> on 08/30/2012',
    name = str.match(/[^><]+(?=<)/)[0],
    date = str.match(/\d{2}\/\d{2}\/\d{4}/)[0];

这是小提琴:http: //jsfiddle.net/5ve7Y/

于 2012-09-04T20:52:35.840 回答
0

另一种方法是使用正则表达式进行匹配,构建一个小数组来获取锚的部分,然后使用子字符串来获取日期。

var str = '<a href="/user/xxspmxx/profile">XxSPMxX</a> on 08/30/2012';
var matches = [];
str.replace(/[^<]*(<a href="([^"]+)">([^<]+)<\/a>)/g, function () {
    matches.push(Array.prototype.slice.call(arguments, 1, 4))
});
var anchorText = matches[0][2];
var theDate = str.substring(str.length - 10, str.length);

console.log(anchorText, theDate);

这里的工作示例:http: //jsfiddle.net/dkA6D/

于 2012-09-04T21:01:41.287 回答