Проходя через substr с циклом, а затем хотите определить индекс - PullRequest
0 голосов
/ 03 февраля 2011

Я пытаюсь получить порядковый номер соответствующих символов в строке.Я имею в виду, что цикл позволяет обрабатывать символы в строке как «массив» символов с помощью строкового метода charAt() и indexOf(), верно?

вот код:

/** ****** WINDOW ONLOAD EVENT HANDLER **************** */
window.onload = function(){
    // DOM elements
    var theButton = document.getElementById('theButton');
    var form = document.formISBN;
    var numberField = document.getElementById('theInput')

    theButton.onclick = function(){
        var number = numberField.value;
        console.log(number)
        controlNr = calculControlNr(number);
        // console.log(controlNr);
    }
}

function calculControlNr(number) {
    number = number.replace(' ','','g');
    number = number.replace('-','','g');
    var sum = 0;
    var sumEven = 0;
    var sumUneven = 0;
    var factor = 3;
    var numberExtract = number.substr(0,11);

    console.log(numberExtract.length)
    for (var i = 0; i < numberExtract.length; i++) {
        console.log(numberExtract.indexOf(numberExtract.charAt(i)));
    }
}

1 Ответ

0 голосов
/ 03 февраля 2011

Как насчет

var numberExtract = number.split('');

console.log(numberExtract.length)
for (var i = 0; i < numberExtract.length; i++) {
    if (i==11) break; // you only wanted the first 11?
    console.log(i+':'+numberExtract[i]);
}

Но ваш код все равно работает.Вот что я сделал, чтобы проверить это

<script>
/** ****** WINDOW ONLOAD EVENT HANDLER **************** */
window.onload = function(){
    // DOM elements
    var theButton = document.getElementById('theButton');
    var form = document.formISBN;
    var numberField = document.getElementById('theInput')

    theButton.onclick = function(){
        var number = numberField.value;
        alert(number)
        controlNr = calculControlNr(number);
        // alert(controlNr);
    }
}

function calculControlNr(number) {
    number = number.replace(' ','','g');
    number = number.replace('-','','g');
    var sum = 0;
    var sumEven = 0;
    var sumUneven = 0;
    var factor = 3;
    var numberExtract = number.substr(0,11);

    alert(numberExtract.length+':'+numberExtract);
    for (var i = 0; i < numberExtract.length; i++) {
        alert(i+':'+numberExtract.indexOf(numberExtract.charAt(i)));
    }
}
</script>
<form name="formISBN">
<input id="theInput" type="text" value="01234567890-A A" />
<input id="theButton" type="button" value="click"/>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...