2013-02-20 2 views
3

Кто-нибудь знает, как я могу заменить число и символ (исключая тире и одинарной кавычки)?заменить номер и символ на jquery/javascript

Пример: если у меня есть строка «ABDHN'S-J34H @ # $»; Как заменить номер и символ на пустой и вернуть значение «ABDHN'S-JH»?

У меня есть следующий код, чтобы переиграть все полукокса и символ пустой и только вернуть мне номер

$(".test").keyup(function (e) { 
    orgValue = $(".test").val(); 
    if (e.which != 37 && e.which != 39 && e.which != 8 && e.which != 46) { 
     newValue = orgValue.replace(/[^\d.]/g, ""); 
     $(".test").val(newValue); 
    } 
}); 

ответ

1

Вы должны позволить только буквы, тире и одиночные кавычки, например:

newValue = orgValue.replace(/[^a-zA-Z'-]/g, ""); 

Все остальное будет заменено на "".

+0

Вы имеете в виду - 'новое_значение = orgValue.replace (/ [^ A-Za-Z'-.]/g, ""); ' –

+0

@Javier Да, спасибо. :) – Kaeros

1

Вы можете использовать это регулярное выражение:

string.replace(/^[a-zA-Z'-]+$/, '') 

каретка^внутри класса символов [] будет отрицать матч. Это регулярное выражение будет преобразовывать все другие символы, чем a-z, A-Z, single quote и hyphen опустошить

1

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

Ссылка для значений KEYCODE для reglar клавиатуры: http://www.w3.org/2002/09/tests/keys.html

 $("#your control").bind("keydown keyup", doItPlease); 

function doItPlease(e) 
{ 
// First 2 Ifs are for numbers for num pad and alpha pad numbers 
if (e.which < 106 && e.which > 95) 
{ 
    return false; // replace your values or return false 
} 
else if (e.which < 58 && e.which > 47) 
{ 
    // replace your values or return false 
} else { 
    var mycharacters = [8, 9, 33, 34, 35 // get your coders from above link]; 
    for (var i = 0; i < mycharacters.length; i++) { 
     if (e.which == mycharacters[i]) { 
      // replace your characters or just 
      // return false; will cancel the key down and wont even allow it 
     } 
     e.preventDefault(); 

}

Смежные вопросы