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"]