Blog

15 search results for:

13

浅谈正则表达式

/ in Boke / by jin.pan
在开发过程中,最经常打交道的数据类型就属字符串了,我们经常要对字符串做各种各样的处理,其中最常做的就是字符串的比较,比较匹配的情况多种多样,非常麻烦,在开发过程中,我感觉到正则表达式为解决这个问题提供非常方便的处理方式。 正则表达式在网络上众说纷纭,我取一个感觉最为合理的解释:正则表达式是对字符串操作的一种逻辑公式,用事先定义好的特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);2. 可以通过正则表达式,从字符串中获取我们想要的特定部分,所以正则表达式在搜索字符串上拥有很强大的作用。 正则表达式的特点是:1. 灵活性、逻辑性和功能性非常的强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说,比较晦涩难懂。 正是正则表达式强大的功能特点,所以获得大量的计算机语言的支持:PHP、C#、Java、C++、VB、Javascript、Ruby以及python等。Java在jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。 由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word等大型编辑器,都可以使用正则表达式来处理文本内容。 正则表达式可以说是由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,可以说好的正则表达式没有不用上元字符的,但也因为元字符的灵活,让初学者感到有点晕头转向。 下面列出部分正则表达式的元字符和描述。 \ 转义字符。如,“n”匹配字符“n”。“\n”匹配一个换行符。 ^ 匹配输入字符串的开始位置。^也匹配“n”或“r”之后的位置。 $ 匹配输入字符串的结束位置。$也匹配“n”或“r”之前的位置。 * 匹配前面的子表达式零次或多次。如,zo*能匹配“z”以及“zoo”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。如,“d(s)?”可以匹配“ds”或“ds”中的“d”。 {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。 x|y 匹配x或y。例如,“z|food”能匹配“z”或“food”。…
14

关于编程命名规范的一些心得

/ in Boke / by jin.pan
前段时间对项目进行了命名的调整,现在分享一下学到的心得。所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑。 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。这些规范并不是一定要绝对遵守,即使没有遵守命名规范,程序依然可以运行,但是一定要让程序有良好的可读性,便于后期的维护管理。 java的命名 包的命名 Package(包)的名字应该都是由小写单词组成,为了保障每个Java包命名的唯一性,自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 类的命名 类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestDemo;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLParser。还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。 方法和变量的命名 方法的和变量命名,大致一样,方法表示动作,所以取名时最好使用表示动作的单词,而变量最好使用名词,并指出完整含义。方法和变量的命名有较多的命名方法,java中比较常用的是骆驼命名法。 1,骆驼(Camel)命名法:第一个字母小写,随后的每个单词的第一个字母大写。如:projectName 2,帕斯卡(Pascal)命名法:每一个单词的第一个字母都大写。如:ProjectName 。 3,匈牙利命名法:加前缀。如btnName、formName。 4,下划线命名法:下划线命名法是通过下划线来区分变量、函数名、类名中的单词的一种方法。 参数的命名 参数的名字必须和变量的命名规范一致,而赋值方法的参数,使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字: setName(String name){ this.name = name; } 数组的命名 数组应该总是用下面的方式来命名: byte[] buf; 而不是: byte buf[]; 虽然两者都可以编译通过,但byte[]…
15

javascript 的一些问题总结

/ in Boke / by jin.pan
javascript 的一些问题总结 我参与talentpool项目已经有两个月了,最近一个月参与talentpool中的resource前端对接,使用了很多javascript技术,期间遇到了各种各样的问题,因为javascript暂时还没有好的调试工具,所以探索和解决问题上很花费时间,我整理了一下项目期间所遇到的问题,现在与大家分享。 排错上浏览器的选择 javascript 出错并不明显,很多浏览器都不会提示javascript出错,IE则对javascript要求非常高,出现很小的问题,都会在IE浏览器的左下角显示出黄色三角形感叹号。双击感叹号,可以打开IE的javascript出错提示窗口,但是IE在javascript出错提示上做得并不是很好,在javascript的出错提示方面,我觉得chrome(谷歌浏览器)和Firefox(火狐浏览器)比IE好很多,他们都有自己的javascript出错控制台,可以查看出错信息,点击查看具体哪一行出错,非常的方便实用。 使用未定义变量或未定义属性 javascript作为浏览器可执行的脚本语言,非常的灵活,变量名和其下面的属性几乎都不需要预先定义,只需赋值后就可以使用了,但也因为这种灵活度,经常会造成不少困扰。未定义的变量或属性在未赋值的情况下直接使用,会出现严重错误,浏览器在遇到此错误后就会停止,不在执行剩余的代码。所以在使用javascript的时候最好不要太随心所欲,不然很容易出现未定义错误。 ajax 缓存问题 用ajax在做数据提交后立即显示更新的时候,经常会出现提交后的数据没有办法显示出来这是因为在浏览器下出现了缓存问题。导致代码只执行一次。网上提供较多的一种解决办法就是加时间戳或者随机数,使url变为唯一,这样就不会出现ie下的缓存问题了,但是这样比较繁琐,并加大代码阅读的复杂度,其实可以设置ajax中的cache属性,当cache属性设置为false时,ajax就不会读取缓存,直接访问代码。 json 格式问题 在使用ajax交互时遇到最多的问题就是json格式错误。json是一种轻量级的数据交换格式,它是一组称键 /值 对组成的字符串,键与值 都是字符串,字符串"{isUser:true}" 使用eval可以执行,但是在jQuery中,使用ajax交互时,定义type为'json'时,键与值 都不是字符串,所以json格式不对,此时会现严重错误,导致浏览器停止运行剩下代码。把字符串改为json格式时则应该为 "{'isUser':'true'}"。但这时,比较的时候不能简单的使用if(data.isUser == true) ,应该是 if(data.isUser == “true”)。

Need Translation Service?

Please enter your personal details and we will contact you shortly.