2017-07-26 161 views
0

我試圖在字段中允許一些特殊字符,這些字符是允許法語和西班牙語名稱(即Nuño,José,François)的重音元音(áéíóúÁEÍÍÓÚ),ÑñÇç。我的代碼是這樣的:允許特殊字符爲ng-pattern

ng-pattern="/^[a-zA-Z\_\-\&\`\#\. ]*$'áéíóúÁEÍÍÓÚÑñÇç" 

而且我想這太

ng-pattern="/^[a-zA-Z\_\-\&\`\´\#\. ]*$'\á\é\í\ó\ú\Á\É\Í\Ó\Ú\Ñ\ñ\Ç\ç]/" 

,但是當我在服務器部署,並檢查領域,它改變了這些字符到未知的字符,如所示如下:

<input type="text" name="firstName" class="form-control ng-pristine ng-invalid ng-not-empty ng-valid-required ng-invalid-pattern ng-touched" ng-required="!userDetails.user.firstname" ng-pattern="/^[a-zA-Z\_\-\&amp;\`\�'\#\. ]*$'\�\�\�\�\�\�\�\�\�\�\�\�\�\�/" ng-model="userDetails.user.firstname" aria-invalid="true"> 

我該如何讓編譯器識別我需要的字符?

由於

+0

你有沒有明確指定字符編碼爲具有這些字符的字符? –

+0

是的,我添加了meta user3123488

+1

一般而言,'^ [a-zA-Z \ _ \ \'\'\#\。 ] *''\á\é\í\ú\Á\Í\Ó\ñ\ñ\ç\ç'''永遠不會匹配任何東西。你的意思是'^ [ - a-zA-Z _&''#。 áéíóúÁÉÓÚññÇç] * $'或'^ [ - a-zA-Z _&''##。 \ u0027 \ u00C1 \ u00C7 \ u00C9 \ u00CD \ u00D1 \ u00D3 \ u00DA \ u00E1 \ u00E7 \ u00E9 \ u00ED \ u00F1 \ u00F3 \ u00FA] * $'? – sln

回答

0

/^ [A-ZA-Z _ \ - &`'#\。 áéíóúÁÉÓÚÑñÇç] * $ /應該在你的情況下工作 - 你不需要在字符前放置一個轉義字符(\)不需要轉義。

+0

類內的點'.'不需要轉義。 – sln

+0

它有相同的結果: user3123488

0

由於@sln評論,它所需要的Unicode字符,它的工作原理與

^[-a-zA-Z_&`´#. \u0027\u00C1\u00C7\u00C9\u00CD\u00D1\u00D3\u00DA\u00E1\u00E7‌​\u00E9\u00ED\u00F1\u‌​00F3\u00FA]*$ 
0

如果您的HTML的字符集/編碼(可以在瀏覽器中進行設置,或者在Web服務器)設置爲UTF-8,你不需要上面的unicode轉換。

相關問題