网站做压力测试,为啥div里的字母和特殊字符不自动换行?中文文字可以!郁闷...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站做压力测试,为啥div里的字母和特殊字符不自动换行?中文文字可以!郁闷...相关的知识,希望对你有一定的参考价值。

这是网页的一个问题,它认为不分空格的字母就是一个单词,加上这样的css就可以(IE浏览器)white-space:normal; word-break:break-all;这里前者是遵循标准:(Firefox浏览器)white-space:normal; word-break:break-all;overflow:hidden; 参考技术A 找几万个网友,同时访问试一下就行了。

正则表达式[]里的五个特殊字符

正则表达式[]里的五个特殊字符

在正则表达式[]里面,主要的特殊字符有五个:[]-\^。 
它们在特定情况下,需要表达本身的字面意思,就需要做转义处理;如果不做转义处理,可能会得到其他的意义,从而得到错误的匹配结果。 
除了这五个字符以外,在[]中的.*+|都是没有任何特殊意义的,它们都表示它们本身的字面意思,也就是说,*就是*

 

 

下面深入讲解下正则表达式[]里的这五个特殊字符:

 

(一)[ 和 ]

因为与正则表达式[]本身冲突,因此,需要匹配其本身时,需要进行转义处理。 
例如, 
源文本:我是一名[PHP]工程师,而不是一名[Java]工程师,也不是一名[C++]工程师,更不是一名[C#]工程师。 
需求:匹配[]中的工程师类型,工程师类型由大小写字母和+#构成。 
正则:\[([a-zA-Z+#]+)\]

 

(二)-

一般情况下,我们会使用[0-9]或者[a-z]这样的表达式来表达数字和小写字母,也就是说,-在此处的意思是表达一个范围值,即从09和从az

如果我们想要得到一个由*-+组成的匹配时,可能有些人会写成[*-+],而且,有些时候测试用例不完整的情况下,还发现不了问题。

[*-+]这个表达式其实表示的是*的ASCII值到+的ASCII值的范围,在我们常见的字母、数字、特殊字符区间里,它刚好能匹配*+,却并没像预期那样匹配到-。甚至,如果你写成了[+-*],它还会报错,就像你不能写成[9-0]一样,它会提示你:Warning: preg_match(): Compilation failed: range out of order in character class at offset 3。而如果你写成了[-*+]或者[*+-],那么恭喜你,你碰巧写对了。

因此,对于[]中的-,如果需要表达其字面意思,除非我们把它写到了[]的开头或者结尾,我们都是需要做转义处理的,也就是[*\-+]。虽然写到开头或结尾不需要转义,但我还是建议,需要表达-本身字面意思时,最好都使用转义,这也便于维护者对于该表达式的理解。

 

(三)\

\本身是转义符,如果你不对它做转义,它将对其后面的字符做转义,所以,这个字符要表达其字面意思时,必须做转义,也就是\\

 

(四)^

^我们常见用法是[^0-9]这种,在[]中放到开头,用于表示排除,也就是非的意思。[^0-9]就表示 非[0-9]的任意字符,也就是,匹配不包含0123456789的其他任意字符。 
但是,如果^写到了[]的其他地方,也就是不在开头时,它就表示它自己的字面意思了。 
-一样,虽然在不同位置能让它的特殊功能失效,但是想要匹配其字面意思时,我还是建议大家对它进行转义处理,也就是[\^]这样。

 

(五) 总结

别问我为什么只有4个,请回去看看(一)里有几个。

在正则表达式[]里面,主要有五个特殊字符:[]-\^,需要表达其字面意思时,最好都对它们进行转义,而其他的任何字符,在[]都只能表达其字面意思。 
因此,特别强调一个非常常见的错误写法:[https|http] 
有些人想要表达https或者http的意思,就写了这个错误匹配,我们会发现,上面的式子其实等价[htps|],原因很简单,[]是单字符匹配,而且里面的|只能表达其字面意思。对于这个例子的改正可以用下面两种写法: 
(https|http) 和 https?。 
(https|http),利用了|字符 或 的意义,因为|的作用域是从左到右,直到遇到括号为止,因此,使用|的时候需要特别留意,一定要使用括号限定,否则又可能陷入另一个错误当中,如^https|http://,本来要表达^https://^http://,却得到了^httpshttp://。 
https?,这个利用了?的0个或1个匹配的意义,如果s?匹配0个,那么就能匹配http,如果s?匹配1个,那么就能匹配https,从而达到预期目的。

更多关于正则表达式入门的内容,请参考本站博客《我眼里的正则表达式入门教程》 
更多关于正则表达式高级的内容,请参考本站博客《深入讲解正则表达式高级教程》 
Windows正则表达式测试工具请从《正则表达式测试工具RegexBuddy-4.1.0》下载 
Mac正则表达式测试工具请从《Mac正则表达式测试工具》下载

















以上是关于网站做压力测试,为啥div里的字母和特殊字符不自动换行?中文文字可以!郁闷...的主要内容,如果未能解决你的问题,请参考以下文章

如何用loadrunner做简单网站的压力测试

为啥div里的onclick()事件不起作用?不会jq

dw做的一个网页,调用数据库的内容,英文字母为啥不能自动换行啊?

关于网站开发中div标签中设置宽度后其中文本溢出的原因和解决方法

第一次使用 将jmeter 做网站压力测试 我的http请求如下配置,但总是运行不成功。请教一下原因。

jmeter模拟对网站做压力测试