Что означает это "/ ^ \ s * $ /", когда я пытался узнать это здесь: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions, но не можете понять его значение?

fn: function (val) {
  return typeof val === 'string' ? 
  !/^\s*$/.test(val) : val !== undefined && val !== null;
}
1
Kavish Mehta 7 Янв 2017 в 21:58

3 ответа

Лучший ответ

Этот

/^\s*$/

объект RegExp

Фрагмент кода

/^\s*$/.test(val)

Использует RegExp метод для проверки является ли строка val пустой или содержит только пробелы. Из документов:

Метод test () выполняет поиск соответствия между регулярным выражением и указанной строкой. Возвращает истину или ложь.

Если вы посмотрите на это регулярное выражение в этом руководстве, оно покажет вам следующее объяснение:

^ asserts position at start of the string
    \s* matches any whitespace character (equal to [\r\n\t\f\v ])
      * Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)
$ asserts position at the end of the string, or before the line terminator right at the end of the string (if any)

В основном это означает, что:

/^...$/ 

Соответствует строке от начала до конца, и

\s* 

Соответствует нулю или большему количеству символов пробела

2
Maxim Koretskyi 7 Янв 2017 в 19:13

Здесь ^ означает начало выражения.

\ s * означает 0 или более вхождений пробелов ('', табуляция и т. д.)

$ означает конец строки.

Поэтому /^\s*$/ является регулярным выражением для пустой строки или строки только с пробелами.

2
Shinto Philip 7 Янв 2017 в 19:12
/^\s*$/

Первый / {регулярное выражение здесь} / как вы пишете регулярное выражение здесь

^ {thingelse} $ означает начало и конец в среднем регулярном выражении

\ s - любой символ строки

«*» означает ноль или более

Так что это означает, что весь элемент является символом, а не число или символ или пробелы

0
Po Stevanus Andrianta 7 Янв 2017 в 19:03