Я пытался найти, содержит ли переменная цифру внутри нее. И по какой-то причине я поставил (эксп.) «Majorpassword09», а он просто печатает ложь?
// vars
var regex = new RegExp(‘.*\d.*’)
var str = ‘Scorpio08’
// main
function reg1() {
if (regex.test(str)){
console.info(‘true’);
}else{
console.info(‘false’);
}
}
reg1();
Обновлено: я поставил заголовок как неправильное регулярное выражение, потому что это единственное, что я считаю неправильным.
Одинарные одинарные кавычки такие же, как в вашем коде? Если это так, то они неверны и должны быть заменены на '
.
Почему бы не использовать проверенное /^\d+$/.test(str)
вы должны избегать обратной косой черты при использовании формы в кавычках.
Вы, скорее всего, на Mac.
Ваш код показывает, что вы используете причудливые кавычки. Как эти: ‘’
. Вам нужно использовать обычные кавычки, такие как '
и "
.
Вот решение вашей проблемы.
// vars
var regex = new RegExp(".*\\d.*")
var str = "Scorpio08"
// main
function reg1() {
if (regex.test(str))
{
console.info("true");
}else{
console.info("false");
}
}
reg1();
Какой бы текстовый редактор вы ни использовали, в нем есть причудливые кавычки. Попробуйте поискать в настройках или в Google, чтобы узнать, как их отключить.
Конструктор RegExp обычно ожидает строку шаблона. Он принимает только другое регулярное выражение, начиная с ES5. Так что это должно быть либо new RegExp(".*\\d.*")
, либо /.*\d.*/
, потому что new RegExp(/.*\d.*/)
совершенно нелогично.
@3limin4t0r Тогда хорошо. Я отредактирую свой ответ.
Поскольку \
является специальным символом в контексте строки, вам придется экранировать его другим \
. ".*\d.*"
— буквальное .*d.*
, тогда как ".*\\d.*"
— буквальное .*\d.*
Я пытался поместить это в jsitor, и я сделал все, что вы описали здесь, но я все еще просто получаю ошибку сценария, и все
@3limin4t0r Ой! Прости за все это!
@StarterScripter К сожалению, я не могу сказать почему. Он отлично работает на JSitor для меня. Может быть, вы все еще используете причудливые цитаты?
@SuperJumpBros Да, я думаю, что это что-то с моим устройством. Он просто выдает мне 2 разные ошибки сценария без данных и ничего не печатается. попробую перезапустить.
поскольку вы используете string
для создания объекта RegExp, вам нужно использовать две обратные косые черты, чтобы правильно экранировать
var regex = new RegExp(‘.*\\d.*’)
или
var regex = /.*\d.*/
Ваш код в настоящее время выдает
Uncaught SyntaxError: Invalid or unexpected token @ JS line 3
. Сначала подумайте об исправлении синтаксиса.