我有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");
我确信必须有一种方法可以在互联网上的某个地方写这个,如果我只是谷歌的东西,但我不知道我要寻找什么..我是非常新的常规表达。
非常感谢!
答案 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);