idName".-6ren">
gpt4 book ai didi

JavaScript 变量名正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:19 26 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式,它将 JavaScript 变量名称中的所有无效字符替换为下划线(在 Java 中)。

我想做的是:

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。

最佳答案

String jsVarName = "1inva>idName".replaceAll("^[^a-zA-Z_$]|[^0-9a-zA-Z_$]", "_");

注意由于\w[a-zA-Z_0-9],所以可以简化为:

String jsVarName = "1inva>idName".replaceAll("^[^a-zA-Z_$]|[^\\w$]", "_")

^[^a-zA-Z_$] 匹配任何不是 [a-zA-Z_$] 并出现在行首的内容。 | 是或。 [^0-9a-zA-Z_$] 匹配任何不是 [0-9a-zA-Z_$] 的内容。

参见 regex tutorial了解更多信息。

关于JavaScript 变量名正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19782163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com