[英]Regex acts weird
我想創建一個可以傳遞給ng-pattern的正則表達式,以便僅當字符串中只有從a到z的大寫/小寫拉丁字母,帶有波浪號的n和帶有尖音的元音時,輸入才有效。 以及點。 我提出了我認為是解決方案的方法,但是angularjs不斷在開發人員工具中告訴我,當string為:
這就是我得到的: "[A-Za-z\\.\\s\\U+00C1\\U+00C9\\U+00CD\\U+00D1\\U+00D3\\U+00DA\\U+00E1\\U+00E9\\U+00ED\\U+00F1\\U+00F3\\U+00FA]+"
我究竟做錯了什么?
PS我嘗試了|
Wiki在[Jun|Jul|Aug]
示例中提到了運算符,但它的作用甚至更怪異。
此正則表達式應滿足您的需求:
[A-Za-z\.\s\u00C1\u00C9\u00CD\u00D1\u00D3\u00DA\u00E1\u00E9\u00ED\u00F1\u00F3\u00FA]+
您應該使用不區分大小寫的正則表達式( i
標志),並使用\\xHH
而不是\\u+00HH
來轉義特殊字符。
var regex = /^[az.\\s\\xC1\\xC9\\xCD\\xD1\\xD3\\xDA\\xE1\\xE9\\xED\\xF1\\xF3\\xFA]+$/i var valid = 'ñ Ñ á e í ó ú'.split(' ') var invalid = '0 ; Ć'.split(' ') console.log('Valid:') valid.forEach(function (e) { console.log(regex.test(e)) //=> true }) console.log('Invalid:') invalid.forEach(function (e) { console.log(regex.test(e)) //=> false })
.as-console-wrapper { min-height: 100vh; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.