2013-07-03 126 views
2

我正在創建一個購物車,並且我有一個正則表達式問題。UTF-8單詞的正則表達式

我想這樣做,是讓最終用戶使用以下字符來驗證商品標題:

話空間。 -

我現在的正則表達式是這個

/^[\w \-\.\:]+$/i 

,但是,當我嘗試例如粘貼一些UTF-8字符,如希臘字母字符或中國文字,俄羅斯等,此正則表達式失敗。

注意:我已經嘗試希臘字符使用α-ωA-Ω以及沒有運氣的\ x {03FF}。此外teqnique不支持其他語言字母

那麼,有沒有辦法在一個正則表達式中匹配所有這些字符?

+1

@halfer:感謝編輯:) –

+1

如何定義「單詞」? '\ w'的定義非常清晰,並且不包含非ASCII字符。 – deceze

+0

就是這樣。我使用\ w來匹配單個單詞。我知道不適用於非ASCII字符,但我不知道要使用什麼。 –

回答

1

添加\p{L}\p{M}爲Posix組字母和組合變音標記。零寬度標記,重音,不應該被遺忘,因爲é可以寫成一個字母,也可以寫爲letter-e + combining accent-acute。有些字母對一個字母有不止一個口音。

作爲@MeriaonosNikos的評論,不要忘記正則表達式的末尾的Unicode開關/u

+0

那個正則表達式必須替換我的預覽正則表達式或我必須添加這兩個實體額外?因爲我已經通過將它們附加到我的正則表達式的結尾來測試實體,並且不起作用。這是我現在在我的正則表達式中:/^[\ w \ - \。\:\ p {L} \ p {M}] + $/i –

+1

@Merianos您還必須添加'/ u'修飾符在正則表達式的最後,它根本處理UTF-8。 – deceze

+0

@deceze這就是我準備發佈:)謝謝,我發現我自己也必須使用/ u修飾符。無論如何感謝很多:) –