JavaScript RegExp: соглашения об именовании - PullRequest
2 голосов
/ 26 июля 2010

Мы все знакомы с соглашениями об именах в R (если нет: Venables & Smith - Введение в R, глава 1.8 ). С другой стороны, регулярные выражения остаются terra incognita и остаются самой ненавистной частью моей жизни в программировании ... Недавно я официально начал повторение JavaScript и пытаюсь создать точный RegExp. проверить правильное имя объекта R.

Краткое вступление: Имена объектов должны начинаться с . или с заглавной / заглавной буквы, и если они начинаются с ., не могут продолжаться с цифры ... после этого разрешаются буквенно-цифровые символы с . и подчеркиванием _.

Короче говоря, вот мой код JS:

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

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

Этот подход управляет первой частью (. и / или нижний / верхний регистр и цифры после .), но я не могу передать что-то вроде & [\w\.]. Я могу написать функцию, которая позаботится об этом, но возможно ли вообще управлять этим с помощью одного RegExp?

1 Ответ

2 голосов
/ 26 июля 2010

Я не знаком с R или его соглашениями об именах, но я попробую:

Если вы только пытаетесь проверить, что имя начинается с правильно, все, что вам нужно сделать, это удалить \. из класса символов, оставив вам: /^\.(?!\d)|^[a-z]/i. В противном случае . все еще может быть первым символом без ограничений на остальные.

Если вы хотите проверить правильность всего имени, должно работать что-то вроде этого:

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