Абсолютно, стиль важен. Особенно когда дело доходит до вещей как расположение с отступом и пробел. Код должен быть легко читаемым человеком, так как это - человек, который должен поддержать тот код позже. Чем более читаем код, тем легче поддержать и выше, качество того кода в конечном счете станет.
существует психологический фактор, который входит для игры со стилем кода. Когда код "ужасен" и тверд читать/понимать, Вы хотите взять меньше владения того кода, таким образом, существует меньше персонального стимула сделать Вашу лучшую работу. Поскольку код становится более читаемым/легким для понимания, Вы чувствуете себя лучше о работе, которую Вы сделали и хотите взять больше владения. Чем больше владения кода, который Вы чувствуете, тем более лично важный это становится для записи лучшего кода.
До, как Microsoft ответила, я отвечу точно таким же образом. Я думаю, что их ответ не призывания обратно его был, вероятно, отлично выровнен по ширине (и, возможно, были другие факторы, чем отсутствие стиля кода, хотя я уверен, что это было участником).
А как насчет:
function getNumber(input) { // rename with a meaningful name
var match = input.match(/^.*-mr(\d+)$/);
if (match) { // check if the input string matched the pattern
return match[1]; // get the capturing group
}
}
getNumber("something30-mr200"); // "200"
Вы можете использовать регулярное выражение, подобное тому, которое дал вам Барт, но я предлагаю использовать совпадение, а не замену, поскольку в случае совпадение не найдено, результатом является вся строка при использовании replace, а при использовании соответствия - null, что кажется более логичным. (хотя в общем).
Что-то вроде этого может помочь:
functiong getNumber(string) {
var matches = string.match(/-mr([0-9]+)/);
return matches[1];
}
getNumber("something30-mr200");
Почему не просто:
-mr(\d+)
Затем получить содержимое группы захвата?
Как насчет того, чтобы найти позицию -mr, а затем получить оттуда подстроку + 3?
Это не регулярное выражение, но, похоже, с вашим описанием работает?
Это может сработать для вас:
// Perform the reg exp test
new RegExp(".*-mr(\d+)").test("something30-mr200");
// result will equal the value of the first subexpression
var result = RegExp.$1;
var result = "something30-mr200".split("mr")[1];
или
var result = "something30-mr200".match(/mr(.*)/)[1];