EDIT: Этот ответ применим только в том случае, если вы допустите пробелы ведущего и/или конечного. Единственный пример, приведенный в вопросе о пространствах, вызывающих отказ, - это место, в котором пространство разделяет последовательности 0
.
Если нет, вам понадобится регулярное выражение, например, в @Tim Pietzcker's answer.
Вы могли бы сделать ToNumber преобразование вместо регулярных выражений, так как строка только с пробелами будут преобразованы в 0
, а также ведущие/ведомые пробелы будут игнорироваться.
Здесь я использую унарный оператор +
для преобразования в номер.
if (+str === 0) {
// pass
}
Одно предостережение в том, что пустая строка также будет преобразован в 0
. Если это нежелательно, вы можете сначала протестировать .length
.
if (str.length && +str === 0) {
// pass
}
"0000000000000000000" // pass
" 000 " // pass
" " // pass
"000000000 0000" // fail
"afads0000 00 0fd" // fail
"" // pass first solution, fail second solution
Что-то вроде (не уверен, что Javascript версия): '/^(0+ | \ S +) $ /' – taro
Разрешена ли пустая строка? –
@Tim Pietzcker, Спасибо, теперь я тоже это понял :) – taro