但设想一下:如果不是“110”,而是“1100”,那是不是要提取4位……这样就显出程序的不够完美。 所以继续思考:所提取的值,永远是在字母“" name="description" />

FSO组件操作实例技巧(8)

发表于:2007-06-30来源:作者:点击数: 标签:
script language= VB s> my_string = "A110B121C119D1861" a_value = mid(my_string,2,3) alert(a_value) /script> 但设想一下:如果不是“110”,而是“1100”,那是不是要提取4位……这样就显出程序的不够完美。 所以继续思考:所提取的值,永远是在字母“
     <script language=VBs>
  my_string = "A110B121C119D1861"
  a_value = mid(my_string,2,3)
  alert(a_value)
  </script>
    但设想一下:如果不是“110”,而是“1100”,那是不是要提取4位……这样就显出程序的不够完美。
    所以继续思考:所提取的值,永远是在字母“A”后面的,且值也永远是在字母“A”和“B”之间的,那么只要分别提取出“A”、“B”的位置,则中间数值的起始位应是字母“A”位+1,中间数值的长度应是字母“B”位-字母“A”位-1
    那么现在就可以让程序完美起来:
  
  <script language=vbs>
  my_string = "A110B121C119D1861"
  a_num = instr(my_string,"A")
  b_num = instr(my_string,"B")
  a_value = mid(my_string,a_num+1,b_num-a_num-1)
  alert(a_value)
  </script>
    OK,那么现在你也就完全可以把字母“B”、“C”、“D”后面的值一一提取了。
    当然需要注意的就是“D”后面有几位怎么取呢?采用字符串总长度-字母D所在位置数就可以了。
  
  <script language=vbs>
  my_string = "A110B121C119D1861"
  a_num = instr(my_string,"A")
  b_num = instr(my_string,"B")
  c_num = instr(my_string,"C")
  d_num = instr(my_string,"D")
  total_num = len(my_string)
  a_value = mid(my_string,a_num+1,b_num-a_num-1)
  b_value = mid(my_string,b_num+1,c_num-b_num-1)
  c_value = mid(my_string,c_num+1,d_num-c_num-1)
  d_value = mid(my_string,d_num+1,total_num-d_num)
  alert(a_value)
  alert(b_value)
  alert(c_value)
  alert(d_value)
  </script>

原文转自:http://www.ltesting.net