2015-01-29 2 views
0

Почему мое регулярное выражение JavaScript не работает?Первая часть регулярных выражений начинается с номера

var regexp = /^[1-9a-zA-Z][0-9a-zA-Z ]*$/; 
console.log(regexp.test('sfdf sfdf')); 

Правило простое: строка должна начинаться с любого числа (0-9), а затем любым числом (ами) и/или буквы (ов) и должны допускать пропуски. Некоторые действительные примеры:

  • 202Ab второй текст и, возможно, более
  • 333333 второй текст и, возможно, более
  • 202aaa второй текст и, возможно, более
  • 23B второй текст и, возможно, более

Invalid пример:

  • a202 второй текст и, возможно, mor е
  • Второй текст и, возможно, более
+0

Так в основном любое число с последующим что-нибудь? '/^\ d. + /' – adeneo

+1

Вы привязываете матч к началу строки (хорошо); но тогда вы говорите «что-нибудь в наборе 1-9, a-z или A-Z». Разве это не должно быть/^ [0-9] [0-9a-zA-Z \ t] * $ /? – Paul

+0

Специальные символы не должны допускаться, например, запятая, звездочка, косые черты и т. Д. Просто цифры, буквы и пробелы – Adorablepolak

ответ

1

Ваше регулярное выражение гласит:

  • любая буква или цифры 1-9
  • любое количество (буквы, числа или пространства)

Это вряд ли то, что вы сказали:

  • любая цифра
  • любое количество (буквы, числа или пространства)

    var regexp = /^\d[0-9a-z ]*$/i; 
    
Смежные вопросы