java JavaScript变量名Regex
我试图编写一个正则表达式,用下划线(Java)替换JavaScript变量名中的所有无效字符
我想做的是:
String jsVarName = "1inva>idName".replaceAll("[a-zA-Z_$][0-9a-zA-Z_$]", "_");
最后是一个名为_inva_idName
的变量
我正在努力想办法让第一个角色与其他角色不同
[a-zA-Z_$][0-9a-zA-Z_$]
是我想要的字符,但我不知道如何将它们连接到正确的语法中。我知道JS var名称可以是完整的unicode,但我只关心ASCII
# 1 楼答案
请注意,由于
\w
是[a-zA-Z_0-9]
,因此可以简化:^[^a-zA-Z_$]
匹配任何不是[a-zA-Z_$]
并出现在行首的内容|
是或[^0-9a-zA-Z_$]
匹配任何不是[0-9a-zA-Z_$]
的内容有关更多信息,请参见regex tutorial