Javascript 如何以这种方式分割

Javascript 如何以这种方式分割,javascript,split,Javascript,Split,我试图从textarea获取特定值。我知道这可以通过JavaScript的split方法实现。我不明白该怎么做 <textarea name="css_sheet" rows="5"> Hey @shaikatssj. How are you? </textarea> 嘿@shaikatssj。你好吗? 或 @名字 我想获取值shaikatssj或名称 怎么做 这不是最优雅的方式,但这将从元素中获取文本并除去除名称以外的所有内容。基于

我试图从
textarea
获取特定值。我知道这可以通过JavaScript的
split
方法实现。我不明白该怎么做

  <textarea
    name="css_sheet" rows="5">
    Hey @shaikatssj. How are you?
    </textarea>

嘿@shaikatssj。你好吗?


@名字
我想获取值shaikatssj名称


怎么做

这不是最优雅的方式,但这将从元素中获取文本并除去除名称以外的所有内容。基于您提供的示例用户名

var name = document.getElementsByName('css_sheet')[0].value;
name = name.split("@")[1];
name = name.split(" ")[0];
name = name.split(".")[0];

此代码将从元素中检索文本,然后检索该文本中以
@
开头的单词,并删除其末尾的

我更喜欢这样的东西

function findThatThing(string)
{
    return string
              .match(/@([^\s,;!.]+)/g)                         //Match each @ until next white space or some punctuation
              .map(function(v){return v.substring(1); });  //Remove the @ from each result
}
比如说

findThatThing("Hello @john and @jane, you can tag by using a @ sign!")
会回来的

["john", "jane"]

如果允许使用ES6,您可以进一步收缩代码。

究竟是什么标记了所需的其余文本?看起来您希望它从“@”后面的字符开始,但如何判断结尾在哪里?“@Some.Name”会算作您想要的值吗?谢谢。。让我试试。然后我将反馈这只适用于给定的示例。当我尝试使用这个示例时,它不起作用。很久以前,有一个名叫@shaikatssj的国王,他很勇敢。用户名的开头总是有一个@和一个。最后?不,只有一个@name@anything@anytextOk更新了我的答案。此代码将从元素中获取文本,然后提供以
@
开头的usernamr。也会删除结尾处的
,但是如果您想保留它,只需删除代码的最后一行即可
["john", "jane"]