2015-06-12 30 views
1

如何製作一個函數將字符串轉換爲小寫字母並用短劃線替換所有空格?如何在js中使用輸入運行「str_replace」函數?

例子:

如果輸入的 「Hello World」,輸出應該是 「你好世界」。

如果輸入是「MerhabaDünya」,則輸出應該是「merhaba-dunya」。

這是我到目前爲止嘗試過的。

<input name="Title" type="text" class="form-control" placeholder="Title"> 
<input name="TitleSeo" type="text" class="form-control" placeholder="Title"> 
function create_seo_url($baslik = "") { 
    $TR = array('ç', 'Ç', 'ı', 'İ', 'ş', 'Ş', 'ğ', 'Ğ', 'ö', 'Ö', 'ü', 'Ü'); 
    $EN = array('c', 'c', 'i', 'i', 's', 's', 'g', 'g', 'o', 'o', 'u', 'u'); 
    $baslik = str_replace($TR, $EN, $baslik); 
    $baslik = mb_strtolower($baslik, 'UTF-8'); 
    $baslik = preg_replace('#[^-a-zA-Z0-9_ ]#', '', $baslik); 
    $baslik = trim($baslik); 
    $baslik = preg_replace('#[-_ ]+#', '-', $baslik); 
    return $baslik; 
} 
+0

類似的問題:HTTP: //stackoverflow.com/questions/5519368/how-can-i-perform-a-str-replace-in-javascript-replacing-text-in-javascript –

回答

1

選擇每個輸入。

爲第一個輸入分配一個onkeyup處理程序,該輸入使用String.toLowerCase().replace(/ /g,'-');將單詞改爲小寫,並用短劃線替換空格。

然後將新值應用於第二輸入

var title = document.querySelector('input[name="Title"]'); 
 
var titleSeo = document.querySelector('input[name="TitleSeo"]'); 
 
title.onkeyup = function() { 
 
    titleSeo.value = this.value.toLowerCase().replace(/ /g, '-'); 
 
}
<form action="" method="post" id="myForm"> 
 
    <input name="Title" type="text" class="form-control" placeholder="Title"> 
 
    <input name="TitleSeo" type="text" class="form-control" placeholder="Title"> 
 
    <input type="submit" value="Submit"> 
 
</form>

2

您可以在@ humble.rumble代碼中使用此代碼:

function transformCharacters(text) { 
    return String(text) 
     .replace(/ç/gi, 'c') 
     .replace(/[ıİ]/gi, 'i') 
     .replace(/[ş]/gi, 's') 
     .replace(/[ğ]/gi, 'g') 
     .replace(/[ö]/gi, 'o') 
     .replace(/[ş]/gi, 's') 
     .replace(/[ü]/gi, 'u') 
     .replace(/[ü]/gi, 'u') 
     .replace(/[-_ ]/g, '-') 
     .replace(/[^-a-zA-Z0-9_ ]/g, '') 
     .toLowerCase(); 
} 
+0

而bamm!你太棒了:)我把你的答案和@ humble.rumble的答案結合起來,那就是我需要的! :) –

+1

如果傳入的內容已經是字符串,則不需要使用'String'構造函數。 'text.replace(/ç/ gi,'c')'會起作用。 –