我用这个代码:如何使用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