Javascript的replace函数以及PHP中的str_replace()函数

今天在做项目的时候遇到要把textarea的值取出存入数据库中,然后再提取出来放在网页中显示。本来这是一个非常简单的部分,只需要在php中使用post将textarea值取出放入数据库中就可以。

但是在做测试的时候无意中发现如果我在输入textarea的时候加入回车(Enter)的时候,存入数据库再取出显示在网页中格式就会出现错误(原先回车的地方被
所取代)。

后来在网页查找了一下发现这是因为不同的结构对于回车的记录方式不同引起的:

(1)在textarea和data base中回车是以‘\n’或者是‘\r\n’的形式存储的(具体两种有什么区别暂时还没有深究);

(2)而在HTML网页中回车是以
的方式存储的。

所以在存入取出的过程中会出现转换错误的情况。

这时候就要用到javascript中的string.replace(searchvalue,newvalue)函数了,这个函数的作用就是遍历待检测文本找出需要替换的内容并全部替换。

具体使用方法如下:

activiteInitial = activiteInitial.replace(/
/, '\n');

对于变量activiteInitial,查找其中的'
'并全部替换为'\n'。

本以为这样就万事大吉了,后来测试发现这个函数只能替换activiteInitial中的第一个
,对于后面的
依旧没有替换。在网上又找了找后发现这个问题很容易解决,只需要使用一个正则表达式就可以解决问题了。如下:

activiteInitial = activiteInitial.replace(/
/g, '\n');

只要在多加一个g就可以替换文本中的全部


相同的替换方法在php中也有,是str_replace(find,replace,string,count),count为可选,一个变量,对替换数进行记数。
用法如下:

$activite = str_replace('
', '\n', '$activite);

你可能感兴趣的:(Javascript的replace函数以及PHP中的str_replace()函数)