如何使用正则表达式替换cshtml文件中textareafor()中的特殊字符?

问题描述 投票:1回答:1

我必须从用户那里收到一条不应包含任何特殊字符的消息。我为此分配了一个id。

@Html.TextAreaFor(model => model.Message, new { id= "msg", htmlAttributes = new { @class = "form-control" } })

单击“提交”按钮,将发送消息。我在onclick事件的函数中使用前面提到的id“msg”,如图所示。

<input type="submit" value="Contact Us" class="btn btn-default" id="submit" onclick="return removeSpecialChar(msg)"/>

在同一个cshtml文件的开头,我还提到了函数removeSpecialChar()

<SCRIPT type=text/javascript>
    function removeSpecialChar(msg) {
        msg = msg.replace(/[^\w\s]/gi, '');
        return msg;
    }
</SCRIPT>

但是,消息中不会替换特殊字符。请帮助我理解这种方法的问题以及如何解决这个问题?另外,建议是否有必要使用名称空间进行正则表达式?

javascript regex asp.net-mvc replace
1个回答
0
投票

你应该编辑textarea的值 - 不确定你传入onclick的是什么msg但是尝试这个(也从点击中删除了返回):

<SCRIPT type=text/javascript>
  function removeSpecialChar() {
    var msg = document.getElementById('msg');
    msg.value = msg.value.replace(/[^\w\s]/gi, '');
  }
</SCRIPT>
<textarea id="msg"></textarea>
<input type="submit" value="Contact Us" class="btn btn-default" id="submit" onclick="removeSpecialChar()"/>

或者您可以通过将onkeyup绑定到textarea来验证用户何时键入:

<SCRIPT type=text/javascript>
  function removeSpecialChar(input) {
    input.value = input.value.replace(/[^\w\s]/gi, '');
  }
</SCRIPT>
<textarea id="msg" onkeyup="removeSpecialChar(this);"></textarea>
© www.soinside.com 2019 - 2024. All rights reserved.