JavaScript и регулярных выражений: как я могу проверить, если строка содержит только символы ASCII?



Я знаю, что могу проверить строку со словами (0-9 A-Z a-z и подчеркивание), применив W в регулярном выражении следующим образом:



function isValid(str) { return /^w+$/.test(str); }


Но как проверить, содержит ли строка только символы ASCII? ( Кажется, я уже близко, но что я пропустил? )



Ссылка: https://stackoverflow.com/a/8253200/188331



UPDATE : для моего случая достаточно стандартного набора символов.

503   2  

2 ответов:

Все, что вам нужно сделать, это проверить, что символы находятся в правильном диапазоне символов.

function isASCII(str) {
    return /^[\x00-\x7F]*$/.test(str);
}

Или если вы хотите использовать расширенный набор символов ASCII:

function isASCII(str, extended) {
    return (extended ? /^[\x00-\xFF]*$/ : /^[\x00-\x7F]*$/).test(str);
}

Вам не нужно регулярное выражение, чтобы сделать это, просто проверьте, если все символы в этой строке имеют код char между 0 и 127:

function isValid(str){
    if(typeof(str)!=='string'){
        return false;
    }
    for(var i=0;i<str.length;i++){
        if(str.charCodeAt(i)>127){
            return false;
        }
    }
    return true;
}

Comments

    Ничего не найдено.