var test = "Hello all, this is a message and i want to mention @john, @smith and @jane...";
我想要得到的是:
var result = ["john", "smith", "jane"];
我可以取字符串中的最后一个用户名,但不是全部。我可以使用正则表达式或其他字符串函数。
谢谢你。
var test = "Hello all, this is a message and i want to mention @john, @smith and @jane...";
我想要得到的是:
var result = ["john", "smith", "jane"];
我可以取字符串中的最后一个用户名,但不是全部。我可以使用正则表达式或其他字符串函数。
谢谢你。
试试这个正则表达式
/(^|\W)@\w+/g
JavaScript:
var test = "Hello all, this is a message and i want to mention @john, @smith and @jane";
var names = test.match(/(^|\W)@\w+/g);
console.log(names);
结果:
0: "@john"
1: "@smith"
2: "@jane"
RegExr上的实时示例: http: //regexr.com?36t6g
var test = "Hello all, this is a message and i want to mention @john, @smith and @jane...";
var patt = /(^|\s)@([^ ]*)/g;
var answer = test.match(patt)
应该得到你想要的
像这个JSfiddle
似乎不可能使用单个正则表达式:
var result = test.match(/@\w+/g).join('').match(/\w+/g);
您可能需要处理正则表达式一无所获的情况:
var result = test.match(/@\w+/g);
result = result ? result.join('').match(/\w+/g) : [];