我的任務是檢查任意長度的字串是否包含除特定字母之外的任何拉丁字母(在我的情況下,不允許匹配羅馬數字(I、V、X、L、C)的字母)
因此,如果不存在拉丁字母 - 字串無效,如果存在特定字符(如上所述) - 字串無效。否則字串有效。
有人可以幫我想出適合這種情況的正則運算式嗎?
123- 無效的
123 aAA- 有效的
ABD- 有效的
AAa ddDD zzZz- 有效的
AXXXA- 無效的
IV abc- 無效的
uj5u.com熱心網友回復:
這應該是它。第一部分(?=.*[a-z])檢查拉丁字母,并[^XLVCI]計算除這些字符之外的任何內容。
let string1 = '123'
let string2 = '123 aAA'
let string3 = 'ABD'
let string4 = 'AAa ddDD zzZz'
let string5 = 'AXXXA'
let string6 = 'IV abc'
let regex = /^(?=.*[a-zA-Z])[^XLVCI] $/
let result = string1.match(regex)
console.log(string1.match(regex))
console.log(string2.match(regex))
console.log(string3.match(regex))
console.log(string4.match(regex))
console.log(string5.match(regex))
console.log(string6.match(regex))
uj5u.com熱心網友回復:
這是一個標準的 RegEx 要求,構建一個包含所有要匹配的字符的字符類。從你的問題來看,這個 RegEx 應該為你做:/^[^CDILMXV]*(?:[ABE-JKN-UWY-Z]) [^CDILMXV]*$/i
注意:我允許使用比您帖子中更多的羅馬數字,如果那不是您需要相應調整的內容。
RegEx 必須至少有一個允許的拉丁字符(中間部分(?:[ABE-JKN-UWY-Z]) ,并且在中間匹配之前或之后必須沒有不允許的拉丁字符([^CDILMXV]*開頭和結尾的)
這應該匹配您的所有輸入。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480267.html
標籤:javascript 正则表达式
上一篇:如何在承諾中呼叫fetch?
下一篇:如何在視口中添加自動播放視頻?
