前端匹配相关字符串的检验和提取
工作上的一个需求 需要检验按照一定规则的字符串,格式如下:
形如${A.B.C}的格式,其中A部分只能为local或者global,B部分是一些诸如string、int等类型,C部分为自定义的任意字符串。同时A、B、C之间由点.进行分割。
实现思路如下:
1、首先用正则表达式匹配出所有的以${开头并且以}结尾的字符串保存到一个数组中。
可以看到res数组中保存的就是我们获取到的所有形如${...}的字符串的数组组合。
2、对字符串的A部分进行校验
方法:直接判断字符串是否包含${local. 或者${global. 即可
3、对匹配出来的字符串内部进行分割进一步校验
由于字符串内部用.分割成A\B\C三部分,因此我们可以直接用.讲字符串进行分割,首先判断分割出来是不是预想的三个部分,如果不是直接匹配失败。
对于分割成功为三个部分的字符串再继续对B部分进行判断:
首先预先定于一个函数,写上允许B部分包含的类型
然后再对提取出来的B部分进行判断:
4、由于C部分可允许任意字符串,因此在这里就不做相关校验,那么需求提出来的相关字符串匹配提取完成。