2011-04-17 51 views
0

我的問題是如何使用選項名稱替換所有值而無需複製粘貼。 新列表將會發生一次,以便它可以幫助我贏得數小時的複製粘貼。使選擇框的值與選項的名稱相同,但不復制粘貼

這對我來說是一個難題。感謝您的解決方案和想法。

<option value="61">Talbot</option> 
<option value="3830">Tata</option> 
<option value="248">Toyota</option> 
<option value="63">Trabant</option> 
<option value="64">Triumph</option> 
<option value="651">Uaz</option> 

這是什麼,我想

<option value="Talbot">Talbot</option> 
+1

在什麼情況下?如果這需要在頁面上發生,則PHP不是必需的。一些快速的jQuery可以選擇'option'元素,迭代每個元素,並將'.val()'設置爲'.text()'。或者這是否需要在長列表上發生一次?或者出於特定原因在服務器端?請提供更多背景。 – David 2011-04-17 21:49:42

+0

@大衛你好,這個列表會發生一次,所以我會正確地將其實施到我的腳本。我有這樣的成千上萬,我的目的是產生他們像'

回答

1

一個例子,如果你想這樣做,用PHP,你應該使用的preg_replace()函數 它會是這個樣子:

<?php 
$ptn = "/<option value=\"(.*)\">(.*)<\/option>/"; 
$str = '<option value="61">Talbot</option>'; 
$rpltxt = '<option value="$2">$1</option>'; 
echo preg_replace($ptn, $rpltxt, $str); 
?> 

輸出將是:

<option value="Talbot">61</option> 
+0

你好Hektor,我希望選項的價值是相同的選項名稱,如」<選項值=「 Talbot「> Talbot' – EnexoOnoma 2011-04-17 22:03:15

+0

所以用這個替換$ rpltxt變量: '$ rpltxt ='';' – GuramK 2011-04-17 22:09:55

0

因爲大多數人用空格,大小寫和引號做有趣的事情,所以很少有保證。

一個適當的搜索正則表達式看起來像

"/<[oO][pP][tT][iI][oO][nN]\s+[vV][aA][lL][uU][eE]\s*=\s*['\"]?(.*)['\"]?\s*>(.*)</[oO][pP][tT][iI][oO][nN]>/" 

replace with "<option value=\"$2\">$2</option>" 

不要求第一組佩倫斯的(但*是)。

相關問題