Как я могу различить числовую строку и символьную строку? - PullRequest
0 голосов
/ 18 июля 2011
var snumber1 = "123456789";
var scharacter2 = "abcdefgh";

есть две строки.Как мне убедиться, что snumber1 содержит только цифры?Что такое регулярное выражение ??

Ответы [ 6 ]

2 голосов
/ 18 июля 2011
var snumber1 = "123456789";
//built-in function
alert ( !isNaN ( snumber1 ) );
//regexp
alert ( /^[0-9]+$/.test ( snumber1 ) );
//another regexp
alert ( /^\d+$/.test ( snumber1 ) );
//convert to Number object
alert ( parseFloat ( snumber1 ) === Number ( snumber1 ) );
2 голосов
/ 18 июля 2011

Регулярное выражение для определения, является ли что-то просто числами, таково:

"^\d+$"  or  "^[0-9]+$"

Источник: StackOverFlow 273141

1 голос
/ 30 января 2012

Вы должны использовать SWITCH операторы вместо IF.

var valueA=100

switch(/^[0-9]+$/.test( valueA ))
{
    case false:
        alert ("'" + valueA + "'" + " Is NOT a number.Try Again");
        break;
    case true;
        alert ("you've got numbers")
        break;
}

Это вернет true.

1 голос
/ 18 июля 2011

Регулярные выражения не нужны:

var snumber1 = "123456789",
    scharacter2 = "abcdefgh";

if ( isNaN(+snumber1) ) {
  alert('snumber is not a number!');
}

if ( !isNaN(+scharacter2) ) {
  alert('scharacter2 is not a string!');
}

Обратите внимание, что я использую оператор + для приведения типов. Это всегда приводит к числу или NaN. Если вы используете функции parseInt или parseFloat, вы можете получить '10' из parseInt('010abc', 10). Это явно не проходит ваш тест на «только цифры» (*) .

1 голос
/ 18 июля 2011

Вам нужна эта функция:

isNaN(string)

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN

0 голосов
/ 18 июля 2011

вы можете использовать parseInt

if (parseInt(snumber1) == snumber1){ alert('is a number'); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...