我正在制作一個應用程式,如果用戶在文本中有“@username”,它會標記他們并發送通知。我試圖通過使用這個正則運算式來做到這一點,/\B(\@[a-zA-Z] \b)(?!;)/但我不希望它在有多個“@”時認為它有效。例如:
@用戶名 - 有效
@@username - 無效
嘿@username - 有效
@usern@name - 無效
嘿@用戶名 - 無效
uj5u.com熱心網友回復:
您可以使用正則運算式 ^@[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"))
uj5u.com熱心網友回復:
(?<=\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)
);
});
uj5u.com熱心網友回復:
正則運算式將幫助您完成您想要的任務 -
^@[A-z0-9_-.] $
假設您還會遇到用戶名,例如 -
@用戶名
@用戶名
@用戶名
@用戶名。
@用戶名
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342412.html
標籤:javascript 正则表达式 regex-lookarounds 正则表达式组 正则表达式否定
