用于检测标记的@users 的正则表达式
Regex for detecting tagged @users
我正在制作一个应用程序,如果用户在文本中包含“@username”,它会标记他们并发送通知。
我尝试通过使用这个正则表达式 /\B(\@[a-zA-Z]+\b)(?!;)/
来做到这一点,但我不希望它在有多个“@”时认为它有效。
例如:
@用户名 - 有效
@@用户名 - 无效
嘿@username - 有效
@usern@name - 无效
hey@username - 无效
将帮助您完成所需任务的正则表达式 -
^@[A-z0-9_-.]+$
假设你还会遇到诸如-
这样的用户名
@user.name
@用户名
@user_name
@user.name.
@User_name
您可以使用正则表达式 ^@[a-z]+$
function isValid(str) {
const regex = /^@[a-z]+$/;
return str.split(" ").some((s) => regex.test(s));
}
console.log(isValid("@username"))
console.log(isValid("hey @username"))
console.log(isValid("@@username"))
console.log(isValid("@usern@name"))
console.log(isValid("hey@username"))
(?<=\s|^\s?)@[a-zA-Z]+(?=\s|\s?$)
可能有效。
const testcase = ['@username', '@@username', 'hey @username', '@usern@name', 'hey@username', 'hey @username hey', '@username hey'];
testcase.forEach(text => {
console.log(text + ' => ' +
/(?<=\s|^\s?)@[a-zA-Z]+(?=\s|\s?$)/.test(text)
);
});
我正在制作一个应用程序,如果用户在文本中包含“@username”,它会标记他们并发送通知。
我尝试通过使用这个正则表达式 /\B(\@[a-zA-Z]+\b)(?!;)/
来做到这一点,但我不希望它在有多个“@”时认为它有效。
例如:
@用户名 - 有效
@@用户名 - 无效
嘿@username - 有效
@usern@name - 无效
hey@username - 无效
将帮助您完成所需任务的正则表达式 -
^@[A-z0-9_-.]+$
假设你还会遇到诸如-
这样的用户名@user.name
@用户名
@user_name
@user.name.
@User_name
您可以使用正则表达式 ^@[a-z]+$
function isValid(str) {
const regex = /^@[a-z]+$/;
return str.split(" ").some((s) => regex.test(s));
}
console.log(isValid("@username"))
console.log(isValid("hey @username"))
console.log(isValid("@@username"))
console.log(isValid("@usern@name"))
console.log(isValid("hey@username"))
(?<=\s|^\s?)@[a-zA-Z]+(?=\s|\s?$)
可能有效。
const testcase = ['@username', '@@username', 'hey @username', '@usern@name', 'hey@username', 'hey @username hey', '@username hey'];
testcase.forEach(text => {
console.log(text + ' => ' +
/(?<=\s|^\s?)@[a-zA-Z]+(?=\s|\s?$)/.test(text)
);
});