SORU
20 ŞUBAT 2012, PAZARTESİ


Dize değil alfasayısal karakterleri kaldırın. [\] Karakteri ile sorun yaşıyor

Verilen çıkış için aşağıdaki dizeyi dönüştürmek istiyorum.

Input:  "\\test\red\bob\fred\new"
Output: "testredbobfrednew"

*10, *, \b, **11 vb gibi özel karakterler idare edecek bir çözüm buldum.

Temelde ben sadece alfasayısal olmayan herhangi bir şey kurtulmak istiyorum. Denedim işte...

Attempt 1: "\\test\red\bob\fred\new".replace(/[_\W] /g, "");
Output 1:  "testedobredew"

Attempt 2: "\\test\red\bob\fred\new".replace(/['`~!@#$%^&*()_| -=?;:'",.<>\{\}\[\]\\\/]/gi, "");
Output 2:  "testedobred [newline] ew"

Attempt 3: "\\test\red\bob\fred\new".replace(/[^a-zA-Z0-9]/, "");
Output 3:  "testedobred [newline] ew"

Attempt 4: "\\test\red\bob\fred\new".replace(/[^a-z0-9\s]/gi, '');
Output 4:  "testedobred [newline] ew"

Çoklu adımlarla bir başka girişimi

function cleanID(id) {
    id = id.toUpperCase();
    id = id.replace( /\t/ , "T");
    id = id.replace( /\n/ , "N");
    id = id.replace( /\r/ , "R");
    id = id.replace( /\b/ , "B");
    id = id.replace( /\f/ , "F");
    return id.replace( /[^a-zA-Z0-9]/ , "");
}

sonuçlar

Attempt 1: cleanID("\\test\red\bob\fred\new");
Output 1: "BTESTREDOBFREDNEW"

Herhangi bir yardım mutluluk duyacağız.

Çözüm:

Final Attempt 1: return JSON.stringify("\\test\red\bob\fred\new").replace( /\W/g , '');
Output 1: "testredbobfrednew"

CEVAP
20 ŞUBAT 2012, PAZARTESİ


Alfasayısal olmayan karakter çıkarma

Aşağıdaki alfasayısal olmayan şerit için doğru bir normal ifade giriş dizesi gelen karakter/:

input.replace(/\W/g, '')

Giriş hatalı

Test string alfanumerik olmayan çeşitli kaçan karakter, içerdiği için, onları kaldıracaktır.

Dize ihtiyaçlarını bir ters eğik çizgi varsa, kelimenin tam anlamıyla alınacak olursa: kaçmak

"\\test\\red\\bob\\fred\\new".replace(/\W/g, '')
"testredbobfrednew" // output

Hatalı biçimlendirilmiş dizeleri işleme

Eğer giriş dizesi doğru kaçmak mümkün değil (neden?), ya da güvenilir olmayan/yanlış bir kaynak çeşit geliyor - böyle bir şey yapabilirsiniz:

JSON.stringify("\\test\red\bob\fred\new").replace(/\W/g, '')
"testredbobfrednew" // output

Bir dize json temsil tırnak işaretleri içeren bir not:

JSON.stringify("\\test\red\bob\fred\new")
""\\test\red\bob\fred\new""

Ama aynı zamanda değiştirme normal ifade tarafından kaldırılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007