php关于textarea中换行、回车、空格的识别与处理

php关于textarea中换行、回车、空格的识别与处理
最新回答
巴拉拉能量作业消失

2023-06-20 16:53:02

在使用 textarea 输入文字后,如何在提交至后台并返回页面时保持原有格式,包括换行、回车、空格等特殊字符?为了实现这一需求,需要了解浏览器的兼容性问题。

在 IE9 及以上版本、Firefox、Chrome 等主流浏览器中,换行符识别通常采用 “/” 格式;而在 IE7-8 中,识别换行符则需分两步:首先匹配 “\r”,接着匹配 “/”。

针对这一问题,有两种解决策略:

1. 替换特殊字符:将 “\r” 和 “\s” 分别替换为对应的字符串或特殊标记。这样替换后的文本能够被浏览器正确解析,从而显示为原样,包括换行、空格等格式。

具体实现方法如下:

例如,将 “\r” 替换为 “\n”,将 “\s” 替换为 “ ”。这使得文本在显示时能够保持原有的换行和空格。

2. 替换为 ASCII 码:将 “\r” 替换为 ASCII 码的 chr(10),将 “\s” 替换为 chr(32)。这种方式下的文本虽然在其他地方无法解析为特殊字符,但在网页中显示时则能以 ASCII 码的形式直接显示出换行、空格等效果。

实现步骤如下(以 JavaScript 为例):

将 “\r” 替换为 “\u000A”,将 “\s” 替换为 “\u0020”。这样替换后的文本以 HTML 格式显示时,不会被解析为特殊字符,而是直接以字符形式显示。

需要注意的几点:

1. 使用 `str.replace('aa','dd')` 方法替换字符串时,仅替换第一次出现的“aa”。若需替换全部出现的“aa”,应使用正则表达式写法:`str=str.replace(/aa/g,'dd');`。

2. 使用 `document.getElementById("ts").value.indexOf(" ")` 来获取字符串中空格出现的第一次位置,以此判断字符串是否包含空格。