| 'use strict'; | 
|   | 
| module.exports = function defFunc(ajv) { | 
|   defFunc.definition = { | 
|     type: 'string', | 
|     inline: function (it, keyword, schema) { | 
|       return getRegExp() + '.test(data' + (it.dataLevel || '') + ')'; | 
|   | 
|       function getRegExp() { | 
|         try { | 
|           if (typeof schema == 'object') | 
|             return new RegExp(schema.pattern, schema.flags); | 
|   | 
|           var rx = schema.match(/^\/(.*)\/([gimuy]*)$/); | 
|           if (rx) return new RegExp(rx[1], rx[2]); | 
|           throw new Error('cannot parse string into RegExp'); | 
|         } catch(e) { | 
|           console.error('regular expression', schema, 'is invalid'); | 
|           throw e; | 
|         } | 
|       } | 
|     }, | 
|     metaSchema: { | 
|       type: ['string', 'object'], | 
|       properties: { | 
|         pattern: { type: 'string' }, | 
|         flags: { type: 'string' } | 
|       }, | 
|       required: ['pattern'], | 
|       additionalProperties: false | 
|     } | 
|   }; | 
|   | 
|   ajv.addKeyword('regexp', defFunc.definition); | 
|   return ajv; | 
| }; |