powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [JS] Регулярка, транслит, заменить цифру на букву
11 сообщений из 11, страница 1 из 1
[JS] Регулярка, транслит, заменить цифру на букву
    #38584022
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть значит такая функция, по замене текста в input, к примеру если у вас только англиская клавиатура и вы не знаете наизусть русскую раскладку, вы наберёте так: Dom nomer 3, а функция должна будет перевести в: Дом номер 3

Есть примерная функция, которая в принципе работает, заменяет одни символы на другие.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function translite(str){
var arr={ 'Щ':'SHCH' , 'И':'I' };
var replacer=function(a){return arr[a]||a};
lang= str.replace(/[А-яёЁ]/g,replacer);
return lang;
}
alert(translite('ЩИ'))



А мне нужно сделать уневирсально типа, чтоб не Щ переводила, а цифренный год клавищи: Щ = 79, И=66 и тд.

значит нужен вот такой массив: var arr={ '79':'SHCH', '66':'I' }

если пишу так, то регулярка видимо не подходит, пробовал и так: str.replace(/[0-9]/g,replacer), но замена цифр на символы, что-то не выходит..

Эту задачу уже в принципе решил, но через "зад" хочется более красиво её решить!
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38584026
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
словарь. чо )
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589317
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goror,

Никто значит не знает в чём причина того, что букву на букву заменяет данная регулярка, а вот цифру на символ нет...?

так работает:
var arr={ 'Р':'R' , 'И':'I' };


а так нет:
var arr={ '82':'R' , '73':'I' };
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589351
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GororНикто значит не знает в чём причина того, что букву на букву заменяет данная регулярка, а вот цифру на символ нет...?
Код: javascript
1.
alert('82, 1, 2, 82, 3'.replace(new RegExp(82,'g'),'R'))


Все меняется...
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589419
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaGororНикто значит не знает в чём причина того, что букву на букву заменяет данная регулярка, а вот цифру на символ нет...?
Код: javascript
1.
alert('82, 1, 2, 82, 3'.replace(new RegExp(82,'g'),'R'))


Все меняется...

Ну в таком единичном запуске меняет, а если в функцию подставить, чтоб сравнивала с массивом и тд. То выдаёт такую ошибку:
Type Error: str.replace is not a function
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589473
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gororа если в функцию подставить, чтоб сравнивала с массивом и тд. То выдаёт такую ошибку:
Type Error: str.replace is not a function
Пример тестовый будет? Или опять все слова, слова...
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589483
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var obj={ 
	'82': 'R', 
	'73': 'I' 
};
var str='82, 1, 73, 82, 3, 73';
for (var prp in obj) {
	alert(str.replace(new RegExp(prp,'g'),obj[prp]));
};


Все меняется...
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589761
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var obj={ 
	'82': 'R', 
	'73': 'I' 
};
var str='82, 1, 73, 82, 3, 73';
for (var prp in obj) {
	alert(str.replace(new RegExp(prp,'g'),obj[prp]));
};


Все меняется...

Да, этот пример рабочий!
Но тут же возникла другая проблема)

Так работает, когда вызываю данную функцию:
translite("82");


Так не работает:
translite(82);


Так тоже не работает:
var keyCode=82;
translite(keyCode);
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589789
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gororvar keyCode=82;
translite(keyCode.toString());
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38589889
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILLHEADGororvar keyCode=82;
translite(keyCode.toString());

Подходит!

Всем спасибо за помощь!

Задача почти решена!)
...
Рейтинг: 0 / 0
[JS] Регулярка, транслит, заменить цифру на букву
    #38590120
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GororТак работает, когда вызываю данную функцию:
Код: javascript
1.
translite("82"); 


Так не работает:
Код: javascript
1.
translite(82); 



Так при втором вызове не строка.
Что делать уже написали...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [JS] Регулярка, транслит, заменить цифру на букву
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]