Как подавить ведущий 0 в JavaScript, чтобы генерировать правильно отформатированный URL? (все попытки породили ошибки typedef)

0

Я формирую URL-адрес, который не может иметь начальные нули в параметре dist GET, заполненном расстоянием [i].

trr2.innerHTML= "<b><a href='join.php?id="+idO[i]+"&dist="+distance[i] +"&category="+category[i]+"&min="+min[i]+"&max="+max[i]+"'>Join this deal</a>";

Ссылка, сгенерированная на этом расстоянии отпечатка [i] с ведущей цифрой 0, а затем десятичной точкой, когда число меньше нуля, например "... & dist = 0,6...", что, в свою очередь, вызывает ошибки при вызове postgresql я сгенерируйте это выражение. Я попробовал все из следующих действий: либо удалить ведущее 0 из числа, либо явно указать число в число, надеясь, что это подавит начальный ноль:

    var dis = distance[i]
...following by any of these....
    var disNN = dis.replace("0", ""); //there will only be 0 in the lead, I know all submitted values, so this expression won't cause other problems
    var disNN = dis.replace(/^0+/, '');
    var disNN = number(dis)

Любые из них, когда они включены в мой код, генерируют следующую ошибку:

Uncaught TypeError: undefined is not a function

Кажется, это должно быть так просто.... Как я могу избавиться от этого ведущего нуля для значений, которые находятся между 0 и 1?

Кроме того, массив создается из php с вызовом, подобным этому:

var distance = <?php echo json_encode($distance);?>;

в случае, если это уместно. Спасибо за любой совет.

2 ответа

0
Лучший ответ

Фокус в сообщении, которое вы видите

Uncaught TypeError: undefined is not a function

Я не слишком уверен, как создается расстояние [i]; но я предполагаю, что это int, а не строка, поэтому он не имеет встроенных строковых функций (например,.replace).

Вы можете попробовать следующее:

var dis = distance[i].toString();

Пожалуйста, позаботьтесь о том, чтобы расстояние [i] не было нулевым, или 'toString терпит неудачу, и вы вернетесь к sqaure one.

  • 0
    Ты был прав. Большое спасибо, но я должен зарегистрировать захват вселенной, в частности, что js добавляет начальные нули в том случае, если для начала это числовой тип!
0

Я удаляю ведущие нули, используя php-функцию ltrim, и передаю расстояния, хорошо отформатированные на javascript, который генерирует URL-адреса.

Применение:

$str = ltrim($str, '0');// Remove leading 0's
echo ltrim(00000.1, '0');// echoes .1
  • 0
    Проблема возникает из-за эхо-кода json-кода в javascript. Массив числовой в php - нет начальных нулей, если я печатаю массив из php.
  • 0
    Насколько я знаю, если вы json_encode (.1) он выводит ".1"
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню