[英]Need help with JavaScript Regular Expression:Regular Expression Too Complex
遵循正則表達式^[0-9A-Za-z]+(\\s)*(-?(\\s)*[0-9A-Za-z]+)*$
在大多數情況下都是匹配的,例如"dsffsd-fdsfds-dasda"
,但當我將字符串匹配為"dsffsd-fdsfds-dasda-dasdas--dasdas-dsfs"
,螢火蟲中出現錯誤,提示正則表達式太復雜。
任何幫助,將不勝感激,在此先感謝
正則表達式屬於災難性回溯 ,這就是您收到此錯誤的原因。 請注意,您的字符串與該模式不匹配,因為該模式不允許使用兩個連字符: --
。
我能夠將模式簡化為:
/^\w(?:-?\s*\w)*$/
如果我做對了,此模式僅允許一種匹配每個字符串的方式,因此它不會遇到相同的問題。
如果您不需要這樣的約束,則可以非常簡單地將模式,例如/^[\\w\\s\\-]*$/
。
請注意, \\w
也與下划線匹配,但是如果需要的話,應該很容易更正。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.