我在js里面写了一个去除首尾空格及特定字符的函数。代码如下:
function trim(str, charlist) { return str.replace(new RegExp('^[\\s'+charlist+']+|[\\s'+charlist+']+$', 'g'), ''); }
代码看上去没有什么问题,运行起来也没有错误。
直到今天,我在搜索栏里搜索“note3”的时候,才发现,地址栏里搜索的内容变成了“ote3”,而其他字母或者是数字开头则是正常的,搜索什么,地址栏里的内容就是什么。
调试过代码之后,将代码改为:
function trim(str, charlist) { var charlist = charlist || ""; return str.replace(new RegExp('^[\\s'+charlist+']+|[\\s'+charlist+']+$', 'g'), ''); }
在函数中增加了对charlist的初始化。在次搜索“note3”,结果正确。
虽然js是弱类型语言,使用变量并不要求一定要初始化,运行的时候,代码会自动转换并赋值。但是这样做会引起一些意想不到的问题,因此,对所有使用到的变量进行初始化,是非常有必要的。
今天就先到这里了,希望小伙伴们能够喜欢。