我正在使用javascript函数,但遇到一个小问题。我希望该函数将“enters”替换为“#”,所以我使用:coment = coment.replace(/\\n/gi,"*#*");,当该注释确实有任何“enter”但注释没有任何“enter”或注释为空白时,它可以完美地工作,它停止工作并发送一条错误消息:

'NoneType'对象没有属性'replace'

我如何控制它是否有任何“输入”,如果没有,它将替换为空

“来”来自于此:
<textarea id="coment"></textarea>
谢谢!

最佳答案

问题取决于实际情况。如果coment中包含DOM元素,那么您需要从输入字段获取值,以便它具有字符串:

coment.value = coment.value.replace(/\n/g,"*#*");

如果问题是coment有时为null或未定义,我建议您先检查一下coment是否包含有效的字符串:
if (coment) {
    coment = coment.replace(/\n/g,"*#*");
}

对于null或undefined情况,您也可以像这样预先设置coment:
coment = coment || "";
coment = coment.replace(/\n/g,"*#*");

您可能会注意到,我也在replace函数中做了几处更改。如果您只是想替换换行符,则不需要在正则表达式定义中使用双反斜杠,并且由于该模式中没有字母,因此没有必要在正则表达式上使用“i”标志。

要具体了解其中的哪一种适用,您需要向我们展示将值存储到coment中的代码,以便我们可以看到其实际内容,或者您​​需要在调试器或console.log中检查coment以查看其内容。在里面。

关于javascript - JavaScript替换功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9067537/

10-10 21:43