2011-03-03 23 views
5

Belirli bir metin alanında ascii olmayan karakterlerin kullanımını kısıtlamak için java betiğini nasıl kullanabiliriz ..? şimdiden teşekkürler ...Java Script olmayan ascii karakterleri algılamak için düzenli ifade

+0

Onları çıkarmak veya değiştirmek ister misiniz? – drudge

+2

Dup: http://stackoverflow.com/questions/3465874/javascript-regex-to-reject-non-ascii-us-characters (Oy vermiyorum) –

+0

@jnpcl Sadece kullanıcı için bir uyarı yapacaktır. ..... onları kaldırmak da iyi bir seçenek – sasidhar

cevap

16

Ascii nedenle

function containsAllAscii(str) { 
    return /^[\000-\177]*$/.test(str) ; 
} 

http://jsfiddle.net/V5e4B/1/

Muhtemelen olmayan kabul etmek istemiyoruz, 000-177 (sekizlik) aralığında karakterler olarak tanımlanır \000-\037 yazdırma karakterleri, belki regex'iniz /\040-\0176/

+2

İstediğiniz tek şey bir boole ise, '.tec()' yerine '.test() işlevini kullanmanız gerekir - o zaman boolean'a dönüştürülmesi gereken bir eşleme nesnesi oluşturmak yerine doğrudan bir boole üretir. –

+0

Teşekkürler Ben, doğru yöntemi bulmak için çok tembeldim. Önerinize göre düzeltildi –

1

Bir CMS sisteminde arkadaşça bir URL olarak kullanılacak bir diziyi sanitize etmek için bir işlev aramaya çalıştım. CMS çok dilli, ancak ascii olmayan karakterlerin URL'de görünmesini önlemek istedim. Bu yüzden aralıkları kullanmak yerine, basitçe (yukarıdaki çözüme göre) kullanıyorum:

function verify_url(txt){ 
    var str=txt.replace(/^\s*|\s*$/g,""); // remove spaces 
    if (str == '') { 
     alert("Please enter a URL for this page."); 
     document.Form1.url.focus(); 
     return false; 
    } 
    found=/^[a-zA-Z0-9._\-]*$/.test(str); // we check for specific characters. If any character does not match these allowed characters, the expression evaluates to false 
    if(!found) { 
     alert("The can only contain letters a thru z, A thru Z, 0 to 9, the dot, the dash and the underscore. No spaces, German specific characters or Chinese characters are allowed. Please remove all punctuation (except for the dot, if you use it), and convert all non complying characters. In German, you may convert umlaut 'o' to 'oe', or in Chinese, you may use the 'pinyin' version of the Chinese characters."); 
     document.Form1.url.focus(); 
    } 
    return found; 
} 
İlgili konular