2014-02-25 60 views
11

我使用JS動畫聯繫表這一行驗證正則表達式:正則表達式變音符

rx:{".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, other fields... 

我才發現,我不能像「穆勒」輸入名稱。正則表達式不會接受這個。我還需要做些什麼,以允許元音變音?

+0

http://stackoverflow.com/q/17153545/2563028 – EfrainReyes

+1

你可以用'\ w'作爲'word',但是你必須測試這個數字是否滿足變音符號 – Martijn

+2

在我的測試中,'\ w'沒有聽到變音。 –

回答

14

你應該在你的正則表達式的Unicode編碼用於字符,如\u0080。 對於德語,我發現如下表:

Zeichen  Unicode 
------------------------------ 
Ä, ä  \u00c4, \u00e4 
Ö, ö  \u00d6, \u00f6 
Ü, ü  \u00dc, \u00fc 
ß   \u00df 

(來源http://javawiki.sowas.com/doku.php?id=java:unicode

+12

[聖盃](http://unicode-table.com/en)。你也可以寫範圍,即。 '[\ u00F0- \ u02AF]'。 – tenub

10

嘗試使用這樣的:

/^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/ 

我已經加入unicode的範圍\u00C0-\u017F每個的開始方括號組。

鑑於/^[\u00C0-\u017FA-Za-z]+$/.test("aeiouçéüß")回報true,我希望它應該工作。

感謝https://stackoverflow.com/a/11550799/940252

+0

'[\ u00C0- \ u017Fa-zA-Z']?'$ /有點多餘,你想要做什麼? – sln

+0

我不確定,因爲我在正則表達式上不是很熱,OP沒有指定他們希望匹配的模式。我剛剛使用他們的原始代碼。如果你可以清理它,請做! :) –

+0

我會冒昧改變這個空間到其他東西來捕捉所有非字字符,如連字符。這是一個測試:https://regex101.com/r/zH5uV0/4 –