2013-09-05 2 views
1

в следующем регулярном выражении, почему мы используем символ $? что это значит? может кто-нибудь объяснить? Я искал это в течение длительного времени?

  function AllowAlphabet(){ 
      if (!frm.alphabet.value.match(/[a-zA-Z]+$/) && frm.alphabet.value !="") 
      { 
       frm.alphabet.value=""; 


       alert("Please Enter only alphabets"); 
      } 
      if(frm.alphabet.value.length > 5) 
      alert("max length exceeded"); 
+0

Тогда вы не выглядящие должным образом. Из документации [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions): * «$ Соответствует концу ввода. Если для многострочного флага установлено значение true, также совпадает непосредственно перед символом прерывания строки. "*. Также полезная ссылка: http://www.regular-expressions.info/. –

ответ

3

Знак доллара означает конец строки в регулярных выражениях.

Что он делает в этом случае, убедитесь, что регулярное выражение проверяет, что frm.alphabet.value содержит a-z или A-Z, сразу же после окончания строки. Если вы удалите символ доллара, «abc1337» будет действительным входом, хотя даже с символами доллара, без каретки в начале, «1337abc» будет действительным.

2

$ связывает выражение в конец строки (также известный как anchor). Соответствующая строка должна заканчиваться буквами верхнего или нижнего регистра.

Хотя, FWIW, это выражение также должно использовать начало привязки строки (^), и они хотят удостовериться, что это только буквы в строке. (Без него значение 5abc будет проходить с этим регулярным выражением).

var foo = '5abc'; 
if (foo.match(/[a-zA-Z]$/)) { 
    // this block is executed despite the 5 being there. 
    console.log('match'); 
} 
0
  1. На самом деле это не jQuery это Regex (в вашем случае)

  2. $ - Если знак доллара ($) в конце всего регулярного выражения, он совпадает с концом строки.

Проверить это regexplained для облегчения понимания вашего regex

0

^ и $ представляет начало и конец строки в регулярных выражениях соответственно

Смежные вопросы