我想使用点表示法规则(任何字母或数字以及只要它不以数字开头)快速检查字符串是否可以有效用作属性名称,_显然$如果括号表示法使用后一切都有效。
我一直在尝试找出正则表达式解决方案,但我对正则表达式的了解并不多。我认为我当前的模式将允许字母、数字,$但_我不知道如何禁止以数字开头
function validName(str){
// check if str meets the requirements
return /^[a-zA-Z0-9$_]+$/.test(str);
}
validName("newName") // should return TRUE
validName("newName32") // should return TRUE
validName("_newName") // should return TRUE
validName("4newName") // should return FALSE
validName("new Name") // should return FALSE
validName("") // should return FALSE
Run Code Online (Sandbox Code Playgroud)
由于\w封面[a-zA-Z0-9_]和\d封面[0-9]你可以使用这个正则表达式:
const validName = str => /^(?!\d)[\w$]+$/.test(str);
console.log(validName("newName")) // should return TRUE
console.log(validName("newName32")) // should return TRUE
console.log(validName("_newName")) // should return TRUE
console.log(validName("4newName")) // should return FALSE
console.log(validName("new Name")) // should return FALSE
console.log(validName("")) // should return FALSERun Code Online (Sandbox Code Playgroud)