Использование charAt с номером в Javascript - PullRequest
0 голосов
/ 27 мая 2019

Я хочу установить какой-то индекс для своего утверждения и проверить, найден он или нет. Я нашел этот метод charAt, но он работает только со строками, так как обрабатывать их с числами

if (mobileNumber) {
        let j = mobileNumber.charAt(2);
        let w = mobileNumber.charAt(0);
        alert("@", w, j)
        if (j === 9) { //Not work quz it's a number
          alert("FoundJ", j)
          return;
        } else if (w === 6) { //Not work quz it's a number
          alert("FoundW", w)
          return
        } else{
           alert("sorry, App does not work in your city right now")
           return
          }

Обновление

сейчас я работаю с индексом, но у меня есть некоторые проблемы с ними, вот мои заявления если я напишу число, и оно содержит 9 || 6 в (2) индексе я вижу предупреждение при вызове функции, я не знаю почему?

 let j = mobileNumber.toString().charAt(2);
      if (mobileNumber.length <= 0) {
        this.setState(
          Object.assign(validations, {
            mobileNumberValid: "• Please, write your Mobile Number"
          })
        );
        return;
      } else if (mobileNumber.length < 10) {
        this.setState(
          Object.assign(validations, {
            mobileNumberValid:
              "• Your Mobile Number must be exactly 10 characters!"
          })
        );
        return;
      } else if (regNumber.test(mobileNumber) === false) {
        this.setState(
          Object.assign(validations, {
            mobileNumberValid: "• Please, Your mobile must be a number"
          })
        );
        return;
      }
      else if (j != 9 || j != 6) { // i think the issue with **OR** 
        alert("sorry not work in your city yet!")
        return;
      }
 else {
        this.setState(
          Object.assign(validations, {
            mobileNumberValid: ""
          })
        );
      }

Ответы [ 3 ]

1 голос
/ 27 мая 2019

Сначала преобразуйте число в строку, используя toString(), затем используйте charAt(index)

var mobileNumber = 98812345;
console.log(mobileNumber.toString().charAt(1));
0 голосов
/ 27 мая 2019

=== выполняет точное сравнение без типа приведения (насколько я знаю)

Если у вас есть числовое выражение, вы можете преобразовать его в строку, а затем использовать charAt () для сравнения

function findJW(mobileNumber) {
    console.log("Checking "+ mobileNumber)
    let str = mobileNumber.toString();
    let j = str.charAt(2);
    let w = str.charAt(0);
  
    if (j == '9') {
       console.log("FoundJ", j)
    } else if (w == '6') {
      console.log("FoundW", w)
    } else{
      console.log("sorry, App does not work in your city right now")
    }
}

findJW(12954678)
findJW(62354678)
findJW(11111111)
0 голосов
/ 27 мая 2019

Просто конвертируйте их в строки до:

if (mobileNumber) {
   let j = mobileNumber.toString().charAt(2);
   let w = mobileNumber.toString().charAt(0);
}

А если они нужны вам как числа, просто проанализируйте их:

let jNumber = parseInt(j, 10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...