#javascript #regex
#javascript #регулярное выражение
Вопрос:
Я нашел много вопросов в StackOverflow о том, как это сделать, но у меня это просто не работает.
var username = "abcdefg";
var min_length = 3;
var max_length = 24;
var regex = new RegExp('^[w.-]{' min_length ',' max_length '}
Я также пробовал использовать косые черты до и после:
new RegExp('/^[w.-]{' min_length ',' max_length '}$/')
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
new RegExp(/^[w.-]{3,24}$/)
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
new RegExp('^[\w.-]{' min_length ',' max_length '}
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
ДЕМОНСТРАЦИЯ
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
new RegExp('^[\w.-]{' min_length ',' max_length '}
Комментарии:
1. Спасибо, но Ориол вас опередил :)
Ответ №3:
Это может помочь
var username = "abcdefg";
var min_length = 3;
var max_length = 24;
var str1='^[\w.-]{' min_length ',' max_length '}
http://jsfiddle.net/Et7J8/
Я также пробовал использовать косые черты до и после:
);
if (regex.test(username))
document.getElementById('status').innerHTML = 'match';
else
document.getElementById('status').innerHTML = 'no match';
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById('status').innerHTML = 'match';
else
document.getElementById('status').innerHTML = 'no match';
Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
)
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;
Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
;
var regex = new RegExp(str1,«i»);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;
Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
)
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь
);
if (regex.test(username))
document.getElementById(‘status’).innerHTML = ‘match’;
else
document.getElementById(‘status’).innerHTML = ‘no match’;
Я также пробовал использовать косые черты до и после:
И я также пробовал использовать двойные кавычки вместо одинарных кавычек (не уверен, что регулярное выражение рассматривает одинарные кавычки как зарезервированные или что-то в этом роде).
Если я уберу кавычки и введу числа для переменных, все будет работать нормально:
jsFiddle:
http://jsfiddle.net/88ef3 /
Комментарии:
1. И вы уверены, что это сработает, если вместо этого просто ввести числа?
2. Проверьте это: jsfiddle.net/88ef3/1
3. вы включаете
/
в свой шаблон в jsfiddle4. да, но я пробовал это с и без
5. посмотрите здесь jsfiddle.net/Yp4sp
Ответ №1:
Когда вы используете RegExp
конструктор для построения регулярного выражения из строки, вы должны избегать косых черт:
Помните, что косая черта в строке javascript используется для экранирования, но здесь вам нужен slah в качестве символа, поэтому вы должны экранировать себя.
Комментарии:
1. Это сделало это! Спасибо. Я приму это по истечении 10-минутного периода.
2. @Gavin также обратите внимание на другие комментарии, которые вы не используете
/
вRegExp
конструкторе, потому/
что это разделитель для литералов регулярных выражений.3. Это то, что я понял, я просто не мог понять, почему это не работает, поэтому я перепробовал все, что мог придумать.
Ответ №2:
Комментарии:
1. Спасибо, но Ориол вас опередил 🙂
Ответ №3:
Это может помочь