Как мне проверить отсутствие пробелов в строке, используя регулярное выражение?

#javascript #regex

#javascript #регулярное выражение

Вопрос:

Как мне проверить отсутствие пробелов в строке, используя регулярное выражение? Я использую jQuery

 var postcode = $(this), val = postcode.val();

if(val.test(NO WHITESPACE)){
   ...
}
  

Любая помощь приветствуется, спасибо

Комментарии:

1. Если бы вы просто искали символы пробела, это сэкономило бы некоторое время и путаницу, если бы вы были более конкретны в вопросе.

Ответ №1:

 if (/s/.test(string)) alert("OH NO THERE IS FILTHY WHITESPACE IN THAT STRING");
  

» s» … ухх, штука, в регулярном выражении означает «любой символ пробела». В частности, это означает то же самое, что и это:

 [ fnrtvu00A0u2028u2029]
  

то есть пробел, перевод формы, перевод строки, возврат каретки, табуляция, вертикальная табуляция и некоторые символы, похожие на пробелы, из расширенной латиницы и Юникода.

Ответ №2:

Если это только пробелы, вам не нужно RegExp : без пробелов = val.indexOf(' ') < 0

Комментарии:

1. Как насчет других форм пробелов, таких как символы табуляции, новые строки, …?

2. В этом случае лучшим инструментом является регулярное выражение : в строке нет пробелов => val.match(/s/g) === null

Ответ №3:

Просто используйте:

 if(!val.match(/s/)) {
  ...
}
  

Ответ №4:

Используйте следующий код, который заменит все пробелы..

 string.replace(/^s |s $/g,'')
  

Фактически это удалило бы даже символы новой строки

Пробелы фактически удаляются с помощью s

Комментарии:

1. Это не приведет к удалению all пробелов, а только тех, которые находятся в начале и в конце строки. И более того, это не отвечает на вопрос.

Ответ №5:

 var valid = !/s/.test('IHaveNoWhiteSpace')

valid ; //# => true

var valid = !/s/.test('I Have WhiteSpace')

valid ; //# => false

var isValidPostCode = /^[a-z]{2}d{3}[a-z]{2}$/i.test('TN809EX');

isValidPostCode ; //# => false