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

时间:2014-01-02 17:11:09

标签: javascript regex

我有keyup=validate()

的textarea

我需要一个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");

我确信必须有一种方法可以在互联网上的某个地方写这个,如果我只是谷歌的东西,但我不知道我要寻找什么..我是非常新的常规表达。

非常感谢!

3 个答案:

答案 0 :(得分:3)

您想要的正则表达式是:

/@[a-z\d]+/ig

这匹配@后跟一系列字母和数字。 i修饰符使其不区分大小写,因此您不必将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);

答案 1 :(得分:1)

<强> JS

var str = "This is a text @user1 this is more text @user2. And this is even more @user3!",
var textArr = str.split(" ");
for(var i = 0; i < textArr.length; i++) {
        var test = textArr[i];
        matches = test.match(/^@.*.[A-Za-z0-9]$/);
        console.log(matches);
};

<强>说明: 您还应该阅读有关正则表达式(http://www.w3schools.com/jsref/jsref_obj_regexp.asp)和匹配(http://www.w3schools.com/jsref/jsref_match.asp)的信息,以了解其工作原理。 基本上,应用^@意味着启动@的正则表达式查找。 $表示以。结尾。和.*之间的任何角色。

要测试: http://www.regular-expressions.info/javascriptexample.html

答案 2 :(得分:0)

感谢上述答复,他们对我有所帮助-在我编写此方法的地方,希望可以回答有关进行正则表达式和结束正则表达式检查的问题。

在此示例中,它在开头查找## _,在末尾查找_ ##

例如## _ anyTokenYouNeedToFind _ ##。

代码:

const tokenSearchHelper = (inputText) => {

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

}

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