конвертация кириллицы в латиницу яваскриптом

[Удален]
1978

Есть яваскрипт скрипт, который создает URL из тайтла страницы.

Вводя кириллические и латинские буквы - получаю URL из обеих.

А мне нужно, чтобы я получал всегда URL из латинских символов.

Сможете помочь?

<script>


function updateDisplayURLTitle(){

// get the title entered by the user
var plainTitle = dojo.byId("title");

// make a friendly url
var urlTitle = plainTitle.value.toLowerCase();
urlTitle= urlTitle.replace(/^\s+|\s+$/g,"");
urlTitle = urlTitle.replace(/[^A-Za-zА-Яа-я 0-9]+/g,' ');
urlTitle = urlTitle.replace(/\s/g, "-");
while(urlTitle.indexOf("--") > -1){
urlTitle = urlTitle.replace("--",'-');
}

// set the values of the display place holder and the custom field
// the is to hold the div open
dojo.byId("displayURLTitle").innerHTML = urlTitle;
dojo.byId("urlTitle").value=urlTitle;
}

// attach this the text1 field onchange
dojo.connect(dojo.byId("headerline"), "onchange", null, "updateDisplayURLTitle");

// populate the field on load
dojo.addOnLoad(updateDisplayURLTitle);

</script>
<div id="displayURLTitle" style="height:20px"> </div>
Mik Foxi
На сайте с 02.03.2011
Offline
1217
#1

так может на php сделать, транслитирировать при сохранении страницы?

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
Bitman
На сайте с 05.07.2009
Offline
112
#2

Первое что нагуглилось http://www.gnuman.ru/stuff/js/translit/. Можно выдернуть JS необходимый.

Северный лес (https://euro-vagonka.by) DREW (https://drew.by) AvtoDrive (https://avtodrive.by)
zhitov
На сайте с 30.01.2005
Offline
219
#3

У меня такой работает, хоть в JS и не силен

function changeit(){
var converter = document.getElementById('converter');
var result = document.getElementById('result');
var source = converter.value;
var target = source.replace(/\./g,''); // замена точки
target = target.replace(/\,/g,''); // замена ,
target = target.replace(/\"/g,''); // замена "
target = target.replace(/\!/g,''); // замена !
target = target.replace(/^ +/,''); // пробел в пустой строке
target = target.replace(/ +$/,''); // пробел в конце строки
target = target.replace(/\s\s\s\s/g,'_'); // пробелы 4
target = target.replace(/\s\s\s/g,'_'); // пробелы 3
target = target.replace(/\s\s/g,'_'); // пробелы 2
target = target.replace(/\s/g,'_'); // пробел 1
target = target.replace(':',''); // пробел 1

var b = {
"а" : "a", "б" : "b", "в" : "v", "г" : "g", "д" : "d", "е" : "e", "ё" : "e",
"з" : "z", "и" : "i", "й" : "y", "к" : "k", "л" : "l", "м" : "m", "н" : "n",
"о" : "o", "п" : "p", "р" : "r", "с" : "s", "т" : "t", "у" : "u", "ф" : "f",
"х" : "h", "ъ" : " ", "ы" : "i", "ъ" : " ", "э" : "e",
"ж":"zh", "ц":"ts", "ч":"ch", "ш":"sh", "щ":"shch","ь":"", "ю":"yu", "я":"ya" };

for (var c in b) {
var d = RegExp(c, "gim");
target = target.replace(d, b[c])
}
result.value = target;
temp=setTimeout('changeit()',500);
return;
}
function initconv(){
document.getElementById('converter').focus();
changeit();
}
Строительные калькуляторы ( https://www.zhitov.com/ )
[Удален]
#4
zhitov:
У меня такой работает, хоть в JS и не силен

Использовал кусок из твоего кода - всё получилось. Спасибо!

Только в твоем коде слова разделяются нижним подчеркиванием (_), а я сделал через дефис (-), так поисковик видит слова в урле.

Федорыч добавил 08.05.2011 в 23:35

foxi:
так может на php сделать, транслитирировать при сохранении страницы?

Не, php на сервере нет.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий