任務:標識符必須包含至少一個非數字且只包含數字,字母,「_」和「 - 」字符。因此'qwerty','identifier-45','u _-_-','-42-'是有效的標識符。檢查字符串是否只包含允許的字符
而'123456','w & 1234','標識符42'是無效的。
我可以通過正則表達式來實現嗎?
id.match(/\w\d/)
或者與多於一個的匹配
id.match(/\w/) && id.match(/\d/)
或者可以是我會使得所有允許的字符數組和過濾原始字符串除去它們(如果剩下的是超過[] ,有禁止的)?
id.to_a.select{|character| !((0..9) + (a..z) + ['-','_']).include?(character)}.count == 0
即所有允許的字符被排除在串,並且如果其長度大於1,將有一些禁止字符(比如&)