Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取所有以X开头,以Y结尾的单词_Javascript_Regex - Fatal编程技术网

Javascript 获取所有以X开头,以Y结尾的单词

Javascript 获取所有以X开头,以Y结尾的单词,javascript,regex,Javascript,Regex,我有一个keyup=validate的文本区域 我需要一个javascript函数来获取所有以@开头、以非a-Za-z0-9字符结尾的单词 例如: This is a text @user1 this is more text @user2. And this is even more @user3! 该函数提供一个数组: Array("@user1","@user2","@user3"); 我确信,如果我只是在谷歌上搜索一些东西,肯定会有一种方法写在互联网上的某个地方,但我不知道我要寻找什

我有一个keyup=validate的文本区域

我需要一个javascript函数来获取所有以@开头、以非a-Za-z0-9字符结尾的单词

例如:

This is a text @user1 this is more text @user2. And this is even more @user3!
该函数提供一个数组:

Array("@user1","@user2","@user3");
我确信,如果我只是在谷歌上搜索一些东西,肯定会有一种方法写在互联网上的某个地方,但我不知道我要寻找什么。。我是个新来的有规律表达的人

多谢各位

JS

说明: 您还应该阅读有关regex和match的内容,了解它的工作原理。 基本上,应用^@意味着开始正则表达式查找@。$意思是以…结尾。和。*中间的任何字符


要测试:

所需的正则表达式是:

/@[a-z\d]+/ig
这与@匹配,后跟一系列字母和数字。i修饰符使其不区分大小写,因此不必在character类中放置A-Z,而g使其查找所有匹配项

var str = "This is a text @user1 this is more text @user2. And this is even more @user3!";
var matches = str.match(/@[a-z\d]+/ig);
console.log(matches);

感谢上面的回复,他们帮助了我——我写了这个方法,希望能回答关于开始和结束正则表达式检查的问题

在本例中,它在开始和结束时查找

e、 g.uu任何您需要查找的令牌

代码:


看起来像正则表达式的工作me@Paul:我对reg表达式很陌生。的确如此。请看这里,了解javascript中的正则表达式。您的描述和示例似乎不匹配。你说过要找到不以字母或数字结尾的单词。但是@user1以一个数字结尾。@DavidThomas很抱歉,我不知道你的评论是什么意思。我不是英国人,因为我找不到一个像这样的好网站在我的语言,我必须使用这一个。我对正则表达式是新手,对英语也是新手。我在这里,学习两者。如果我是美国居民,会说英语,我就更容易学会所有这些东西,但是没有人能选择他们将出生在哪里。我认为我不值得这样刻薄的评论。祝你有一个愉快的一天。对你的建议进行升级,因为对我自己的建议进行任何编辑,基本上都会将其转换为与你在这里建议的相同的正则表达式。尽管我建议你解释一下正则表达式,也许还可以链接到match方法等的相关文档。没问题。我以为我错了。在你的回答之后,把这个问题读三遍:是的,我也是,在你的评论之后;我认为我遇到的问题是措辞和发布的结果,出于某种原因,我认为这是期望的输出,而不是实际的输出。唉……漫长的一天我在Firefox上试用过,控制台显示为空。怎么了?这个regexp在字符串中找不到单词。它测试整个字符串是否匹配该正则表达式,因为^匹配输入的开头,$匹配输入的结尾。这很有效!!非常感谢大家!我真的很感谢你的帮助!!很好的答案,甚至可以将其缩短为/@\w+/g,其中w是[a-zA-Z_0-9]的缩写。不,我不需要无壳修饰符。如果他允许在他的用户名中输入,我可以这样做,但他没有。我问他对安尼的回答有何评论。
var str = "This is a text @user1 this is more text @user2. And this is even more @user3!";
var matches = str.match(/@[a-z\d]+/ig);
console.log(matches);
const tokenSearchHelper = (inputText) => {

    let matches = inputText.match(/##_[a-zA-Z0-9_\d]+_##/ig);
    return matches;

}

const out = tokenSearchHelper("Hello ##_World_##");
console.log(out);