关于正则表达式:JavaScript RegExp:R命名约定

JavaScript RegExp: R naming conventions

我们都熟悉R中的命名约定(如果不是:venables&smith-R简介,第1.8章)。另一方面,正则表达式仍然是TerraIncognita,也是迄今为止我编程生活中最讨厌的部分…最近,我正式启动了JavaScript重述,并尝试创建精确的regexp来检查正确的r对象名。

简介:对象名必须以.或小写/大写字母开头,如果以.开头,则不能继续使用数字…之后,允许在.和下划线_中使用字母数字符号。

长话短说,这是我的JS代码:

1
2
3
4
var txt ="._.";
var inc = /^\.(?!\d)|^[a-z\.]/i;

document.write(inc.test(txt));

这种方法管理第一部分(.和/或小写/大写,数字在.之后),但我不能传递类似& [\w\.]的内容。我可以编写一个函数来处理这个问题,但是是否可以用一个regexp来管理这个问题?


我不熟悉R或它的命名约定,但我会给它一个机会:

如果您只是想验证名称是否正确开始,那么只需从character类中删除\.,留下:/^\.(?!\d)|^[a-z]/i。否则,.可能仍然是第一个字符,对其余的字符没有限制。

如果要验证整个名称是否正确,则应执行以下操作:

1
/^(?:\.(?!\d)|[a-z])[a-z0-9_\.]+$/i