Javascript 如何在Jquery中从字符串中提取子字符串

Javascript 如何在Jquery中从字符串中提取子字符串,javascript,jquery,string,Javascript,Jquery,String,我想在文本区域中写一条消息,并能够引用使用@符号的人 e、 g 请致电@Larry David查询 某物 在提交表格时,我想提取人名,即Larry David 如何使用Jquery提取这个字符串?如果人名是Larry David,该怎么办?我想你在这里能做的最好的事情就是提取拉里的: var result = $('#textareaId').val().match(/\@(\w+)/); if (result != null && result.length > 1) {

我想在文本区域中写一条消息,并能够引用使用@符号的人

e、 g

请致电@Larry David查询 某物

在提交表格时,我想提取人名,即Larry David


如何使用Jquery提取这个字符串?

如果人名是
Larry David,该怎么办?我想你在这里能做的最好的事情就是提取拉里的

var result = $('#textareaId').val().match(/\@(\w+)/);
if (result != null && result.length > 1) {
    alert(result[1]);
}

如果此人的名字是Larry David,该怎么办?我想你在这里能做的最好的事情就是提取拉里的:

var result = $('#textareaId').val().match(/\@(\w+)/);
if (result != null && result.length > 1) {
    alert(result[1]);
}

要符合您的要求,您需要:

var str = "Please call @Larry David regarding something";
var re = /@(\w+\s\w+)/;

var name = str.match(re);
if(name){
    alert(name[1])
}
但对于像富吧、奥唐纳等名字来说,这将是失败的

正则表达式,如

var re = /@(\w+\s[\w-']+)/;
可能会好一点,但其他名字仍然会失败


如果没有更好的方法来确定名称的结尾,您可能会在名称上出现错误。

要匹配您要求的名称,最好是:

var str = "Please call @Larry David regarding something";
var re = /@(\w+\s\w+)/;

var name = str.match(re);
if(name){
    alert(name[1])
}
但对于像富吧、奥唐纳等名字来说,这将是失败的

正则表达式,如

var re = /@(\w+\s[\w-']+)/;
可能会好一点,但其他名字仍然会失败


如果没有更好的方法来确定姓名的结尾,您可能会在姓名上出现错误。

如果人名是
拉里·大卫,该怎么办?我认为您在这里能做的最好的事情是提取
Larry
。您认为使用与SO用于标记相同的机制(即智能自动完成)如何?这不是一件容易做到的事,但是为什么要使用jQuery??使用正则表达式将更有效,如下面答案中的示例。什么是有效名称?姓名是否总是与数据库中的用户名或其他内容相匹配?如果人名是
Larry David
?我认为您在这里能做的最好的事情是提取
Larry
。您认为使用与SO用于标记相同的机制(即智能自动完成)如何?这不是一件容易做到的事,但是为什么要使用jQuery??使用正则表达式将更有效,如下面答案中的示例。什么是有效名称?该名称是否始终与数据库或其他内容上的用户名匹配?