2017-06-21 45 views
0

(我搜索了這個問題,但是隻找到足夠好的解決方案,需要使用unicode插件,我不能使用它。)RegEx unicode name validation(只有短劃線,點,空格,允許使用apostrof)

我想驗證的輸入字段(第一和姓氏)用以下標準:允許

  • 沒有號碼,
  • . - '(點,短劃線apostrof和SPACE)是允許的,
  • ñ o其他符號或特殊字符允許,
  • 我想接受所有Unicode字符

[a-zA-Z]是假表,因爲它被輸入重音字符時死亡。 我開始於^([^0-9]*)$,它能夠滿足上述所有條件,除了一個:它允許所有特殊字符,而不僅僅是.-'和空間。

是否可以修改^([^0-9]*)$,以便它符合特殊字符條件但是接受所有unicode字符?

+0

也許更容易指定你不允許符號(例如,'[^ $ @#%^&*()] +')。我個人沒有看到驗證名稱的任何一點。如果用戶想要使用假名稱並且不允許使用符號,用戶仍然可以放置zzz或zazaza。那爲什麼要麻煩? –

回答

2

您可以使用\p{L}(它匹配來自任何語言的任何字母),將其與JS XRegExp library結合使用。

var str1 = "aàp'èéìa skopI(989'j0.ç-' dc sAù_"; 
 
var str2 = "aàp'èéìa skopI'j.-' dc sAù"; 
 

 
regex = XRegExp('^[\\p{L} \'.-]+$'); 
 

 
console.log(regex.test(str1)); // this should return false 
 
console.log(regex.test(str2)); // this should return true
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>

相關問題