我用這個代碼:如何使用Javascript轉換替換函數來替換多個字符?
<script type="text/javascript">
function transfer(which) {
which = which.replace(/[\-]+/g,'-'); // to remove extra hypens
which = which.replace('č', 'c');
which = which.replace('ē', 'e');
which = which.replace('ģ', 'g');
which = which.replace('ī', 'i');
which = which.replace('ķ', 'k');
which = which.replace('ļ', 'l');
which = which.replace('ņ', 'n');
which = which.replace('ū', 'u');
which = which.replace('ž', 'z');
which = which.replace('š', 's');
which = which.replace('ā', 'a');
which = which.replace(/\s/g,'-'); // to replace spaces with hypens
which = which.replace(/[\-]+/g,'-'); // to remove extra hypens
which = which.replace(/[^a-zA-Z0-9\-]/g,'').toLowerCase(); // to convert to lower case
document.getElementById("url_slug").value = which;
}
</script>
正如你看到的,現在也有很多變化的人物,但我也需要更改所有俄語字符拉美。如果我這樣做,我會很長的代碼。 所以我的問題是:是否有可能用Javascript轉換替換函數替換許多字符不是每行一個字符。類似 喜歡的東西在PHP
$cyr = array('а','б','в','г','д','e','ж','з','и','й','к','л','м','н','о','п','р','с','т','у',
'ф','х','ц','ч','ш','щ','ъ','ь', 'ю','я','А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У',
'Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ь', 'Ю','Я');
$lat = array('a','b','v','g','d','e','zh','z','i','y','k','l','m','n','o','p','r','s','t','u',
'f' ,'h' ,'ts' ,'ch','sh' ,'sht' ,'a' ,'y' ,'yu' ,'ya','A','B','V','G','D','E','Zh',
'Z','I','Y','K','L','M','N','O','P','R','S','T','U',
'F' ,'H' ,'Ts' ,'Ch','Sh' ,'Sht' ,'A' ,'Y' ,'Yu' ,'Ya');
$textcyr = str_replace($cyr, $lat, $textcyr);
謝謝。它工作的很好,但只有如何實現這個代碼:\t \t which = which.replace(/ \ s/g,' - '); //替換空格 which = which.replace(/ [\ - ] +/g,' - '); //去除額外的多餘信息 which = which.replace(/ [^ a-zA-Z0-9 \ - ]/g,'')。toLowerCase(); //將其轉換爲小寫 – Dainis
我在某些代碼中編輯了這個代碼 - 您可以將「替換」調用鏈接在一起,就像我在「常規清理」部分所做的那樣。這樣,你不必多次寫出「哪個= which.replace(...);'」;您只需添加更多'.replace(...)'調用。沒有辦法使它比這更短,因爲「替代連字符」替換必須在「刪除重複連字符」替換之前發生。 – apsillers
謝謝。但是這段代碼沒有奏效。隨着第一個代碼都工作,除了空間卸妝。也許有可能以某種方式改變? – Dainis