2 回答

TA貢獻1155條經(jīng)驗 獲得超0個贊
正如評論中所說,類似
if ( message.content.charAt(0).toUpperCase() !== message.content.charAt(0) )
也適用于非 ASCII 字符,只是將大寫字母的責任推遲到 Javascript。
由于我不知道什么是不和諧機器人,我更愿意告訴您將第一個字母存儲在變量中,以確保更高的性能和代碼可讀性
const firstLetter = message.content.charAt(0);
if ( firstLetter !== firstLetter ) {
//
}

TA貢獻1790條經(jīng)驗 獲得超9個贊
您的問題是這message.content.charAt(0) !== /[A-Z0-9]/g是檢查位置 0 處的字符是否等于正則表達式,而不是是否不匹配,因此它與'a' !== new RegExp()始終為真的相同。
你想要的是.test()函數(shù),所以你可以這樣寫
!/[A-Z0-9]/g.test(message.content.charAt(0))
if (!/[A-Z0-9]/g.test('g')) {
console.log('Not Uppercase')
}
if (!/[A-Z0-9]/g.test('G')) {
console.log("Won't hit this")
}
添加回答
舉報