分享
三行代码  ›  专栏  ›  技术社区  ›  stackoverflow_user

如何使用javascript提取光标位置前和@字符后的字符串,直到第一个空白字符?

  •  0
  • stackoverflow_user  · 技术社区  · 3 月前

    我刚开始编程,我想从光标位置之前的@字符中提取字符串,直到找到空白。

    我想做什么? 考虑字符串“你好,从@us到你”

    光标位置在“@”旁边的索引12处,现在我想提取字符串“us”,它在@字符之后直到空白。

    这就是我所尝试的:

    string1 = value.substr(0, event.target.selectionStart);
    
    string2= string1.slice(string1.lastIndexOf('@') + 1);
    string3 = string2.split(' ')[0];
    

    但这给了我“空字符串”。

    我怎么能得到一个字符串“我们”,有人能帮我吗?谢谢:

    2 回复  |  直到 3 月前
        1
  •  1
  •   Randy Casburn    3 月前

    const cursorPosition = 6;
    const str = "hello from @us to you";
    const str1 = str.substring(cursorPosition);
    const str2 = str1.substring(str1.lastIndexOf('@')+1).split(' ')[0];
    console.log(str2)
    
    //or
    
    const out = str1.split(" ").find(word=>word.includes('@')).substring(1);
    console.log(out);
        2
  •  0
  •   Scott Speidel    3 月前

    类似于你所做的:

    "hello from @us to you".split('@')[1].split(' ')[0]