2017-07-26 124 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转换。