我试图限制用户的输入如下。英文字符(a到z或A到Z)数字字符(0到9)所有特殊字符(〜`!@#$%^&*()_ +-= [] {} |;':“,。/ ?)我想防止用户输入非英文字符(例如中文,韩文等)。export const isValidPasswordChar = str => { const regex = /^[~`!@#$%^&*()_+\-=\[\]\\{}|;':",./<>?a-zA-Z0-9]$/; if(regex.test(str)){ return false } return true;};和单元测试it('should not allow foreign chars-1', ()=>{ const str = '안'; expect(isValidPasswordChar(str)).toBe(false); });上面的单元测试之前可以工作,但是由于某种原因,单元测试一直失败。我在这里缺少什么吗? 最佳答案 你在正确的道路上^[~`!@#$%^&*()_+=[\]\\{}|;':",.\/<>?a-zA-Z0-9-]+$您可以在末尾移动-,因此无需转义除了] and / and \,您不需要转义其他字符const isValidPasswordChar = str => { const regex = /^[~`!@#$%^&*()_+=[\]\{}|;':",.\/<>?a-zA-Z0-9-]+$/; return regex.test(str)};console.log(isValidPasswordChar('/'))console.log(isValidPasswordChar('`1234567890-=;:,./'))console.log(isValidPasswordChar('HelloPasword1234~!@#$%^&*()_+'))console.log(isValidPasswordChar('汉字'))关于javascript - 正则表达式-仅允许使用英文(小写或大写),数字,特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57132303/