2013-12-20 99 views
0

我使用wordpress的聯繫表單7插件與聯繫表單db結合在前端顯示字段結果。我試圖過濾出簡碼中的結果,例如
php正則表達式:修改爲只允許一個單詞

<?php echo do_shortcode('[cfdb-value form="Testing" filter="FirstField~~/^s/"]'); ?> 

此過濾器將僅FirstField以字母s開始顯示值,是有可能適應此代碼僅示出一個字的值(即,單詞,在沒有空格)。如果這是可能的話?任何建議將不勝感激!

+0

嘗試'^ \ w +'而不是'^ \ s'。 \ w表示「沒有空格的單詞字符」,「+」表示「一個或多個」。我不知道你是否也必須避免反斜槓('\\而不是\'),因爲我不知道函數如何處理它。 –

+0

@MichaelHelwig這隻顯示以'w'開頭的結果。我只想顯示由1個字組成的結果(即沒有空白) – user1374796

+0

然後該函數似乎沒有正確解釋正則表達式。你有沒有嘗試轉義(兩個反斜槓而不是一個)? –

回答

0

這裏是一個不包含非單詞(包括標點符號)的正則表達式。它允許使用Unicode,但:

/^\w+$/u 

DEMO

  • correct
  • foobar
  • definitelynot
  • unicodeæøå

沒有通

  • foo bar
  • bar-foo
  • foo.bar
  • noway, sir
0

嘗試^s[a-zA-Z0-9]\*$從s開始,然後是括號內的任意數量的字符[]。其他方式將是^s[a-zA-Z0-9]\*\S$堅持空白在詞的結尾!我沒有測試這個代碼,但想法應該在那裏。

+0

我只是想用空白過濾掉結果,'用s開始'驗證不再需要。我之前使用過這個代碼,但是這並不起作用,因爲短代碼中的括號會破壞短代碼:( – user1374796

+0

堆棧溢出從我的第一個答案中刪除了\ *它必須在那裏! – Low

+0

您的第一個答案是什麼?Stack溢出不會刪除你的答案,直到他們有一個原因 –

0

這個怎麼樣:

/^(\S+)/ 

這種捕獲是不是從字符串的開頭空格全部字符。

+0

仍然沒有運氣:(通常這個正則表達式可以工作,但正則表達式在短代碼內部,他們應該在'一開始'一個工作正常,因此我以此爲例,但試圖只顯示1個字(沒有空格)被證明是棘手的 – user1374796

+0

@ user1374796:您是否試圖逃脫不止一次即,'\\ \ S' – Toto

+0

是的,仍然沒有運氣,這很奇怪,我不知道它:( – user1374796