0

ユーザーがタグに何かを書いたときにリンクを作成しようとします。しかし問題は、文字セットを変換できないことです。ş = s、ğ = g ...のように...ここに私のコード

$(document).ready(function () {
   $('em').html(function(i, linkle) {

var returnString = linkle.toLowerCase();
//Convert Characters
returnString = returnString.replace(/ö/g, 'o');
returnString = returnString.replace(/ç/g, 'c');
returnString = returnString.replace(/ş/g, 's');
returnString = returnString.replace(/ı/g, 'i');
returnString = returnString.replace(/ğ/g, 'g');
returnString = returnString.replace(/ü/g, 'u');  

// if there are other invalid chars, convert them into blank spaces
returnString = returnString.replace(/[^a-z0-9\s-]/g, "");
// convert multiple spaces and hyphens into one space       
returnString = returnString.replace(/[\s-]+/g, " ");
// trims current string
returnString = returnString.replace(/^\s+|\s+$/g,"");
// cuts string (if too long)
if(returnString.length > maxLength)
returnString = returnString.substring(0,maxLength);
// add hyphens
returnString = returnString.replace(/\s/g, "-");    

return '<a href="/' + linkle + '/">' + linkle + '</a>';
});
});

文字を変換してリンクを作成するにはどうすればよいですか。最後に私が欲しいのは、最初と最後の文字が空白の場合、それをクリアすることです... Ty。

4

1 に答える 1

0

jqueryhtml()関数は文字列を想定していますが、関数を提供しています。関数をhtml呼び出しから移動し、代わりにその戻り値を渡す必要があります。また、リンクを作成するときに変数を実際に使用することはありません。returnreturnStringステートメントは次のようにする必要があると思います。

return '<a href="/' + returnString + '/">' + returnString + '</a>';

また、文字を手動で置き換えるのではなく、encodeURIを使用することを検討することもできます。これにより、無効な文字が変換され、URL で安全に使用できるようになります。

于 2012-09-10T08:43:45.310 に答える