0

次の JS コードがあるとします。許容できない文字を受け取った場合は、文字全体のみを削除できます。

function checkInput() {
    document.getElementById("message").setAttribute('maxlength', (456));
    for (var i = 0; i < document.fr_upload.message.value.length; i++) {
        if (!checkLatin(document.fr_upload.message.value)) {
            alert("Your entry does not contain latin type.\n Please try again.")
            document.fr_upload.message.value = '';
            document.fr_upload.char_left.value = 0;
            return false;

        }
    }
}

function checkLatin(arg) {
    var latin = /^[\u0020-\u007E]*$/;
    if (arg.match(latin)) {
        return true;
    } else {
        return false;
    }
}

したがって、受け入れられない文字だけを削除するにはどうすればよいですか?

4

2 に答える 2

1

試す

function checkInput() {
    document.getElementById("message").setAttribute('maxlength', (456));

    var value = document.fr_upload.message.value;
    if (value && !/[^\u0020-\u007E]/.test(value)) {
        alert("Your entry contains non latin characters.\n Please try again.");
        document.fr_upload.message.value = value.replace(
                /[^\u0020-\u007E]/g, '');
        document.fr_upload.char_left.value = document.fr_upload.message.value.length;
    }
}
于 2013-04-23T05:07:21.507 に答える
0

非ラテン文字を置き換えるには、次を使用できます。

function removeNonLatin(arg) {
    var nonlatin = /!(^[\u0020-\u007E]*$)/g;
    arg = arg.replace(nonlatin , '');
    return arg;
}
于 2013-04-23T05:17:24.833 に答える