2012-11-01 105 views
0

我想從使用jquery的選擇列表中獲取標籤值,將其寫入隱藏文本輸入,然後在php模板中顯示該值。 - (沒有辦法直接在數據中訪問字段,這是我的工作。)帶Unicode?字符串中的連字符和空格php

所以我可以抓住標籤值,將其傳遞給隱藏和顯示。但標籤被格式化如此「 - 最新消息」 我想剝離空白和連字符/減號,所以我留下「最新消息」

通過嘗試通常的功能,他們不工作它發生在我身上,當它沒有工作,這些可能是unicode字符。當我使用以下內容:

$mycategory = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $mycategory); 
$mycategory = htmlentities($mycategory, ENT_QUOTES, "UTF-8"); 
$mycategory = str_replace("-", "", $mycategory); 

echo '<h1>'.$mycategory.'</h1>'; 

第1行我替換了前面的unicode空白。返回「 - 最新消息」 第2行:我將實體更改爲html 第3行:我擺脫了實體。但這返回「最新消息」

所以我不能擺脫最後一個空間與修剪或preg_replace。我不知道如何擺脫它。如果我把第三行的搜索詞放在空格中,它會打破替換。

+0

嘗試模式:\ W +!未經測試:) – deb0rian

+0

對不起,我不知道多少關於grep,不知道你的意思,在開始preg_replace或轉換爲htmlentities後... – liz

+0

preg_replace('!\ W +!','',..... – deb0rian

回答

1

嘛,,, grrr..had打開PHP :)

$str = '- Latest news !*#'; 
echo preg_replace('/[^[:alnum:]\s]/','',$str); 
+0

感謝您打開php :-)!你可以解釋嗎?那是我正在處理的unicode嗎?如果是這樣,爲什麼沒有這些特性將其轉換?還有,它最初得到unicode編碼還是發生在我從選擇中抓取它時發生的? – liz

+0

其實。我只是脫掉所有不是a-z 0-9和空格的東西,所以它裏面的東西真的沒什麼關係,一切都被擦掉:) – deb0rian

+1

ahhh聰明!再次感謝。 – liz