如何在asp.net中设置多行文本框的限制

时间:2014-10-28 07:03:49

标签: html asp.net regex

我正在使用MultiLine Textbox现在我想允许其中的所有字符,我还想将文本框的限制设置为150个字符。所以我想使用正则表达式,所以任何人都可以帮助我。 我正在使用这个正则表达式:

"^[A-Za-z0-9\s!@#$%^&*()_+=-`~\\\]\[{}|';:/.,?><]*{1,150}$"

所有工作正常,但不会将字符限制为150

提前致谢。

3 个答案:

答案 0 :(得分:0)

如果TextMode属性未设置为MultiLine,则可以使用TextBox.MaxLength PropertyMaxLength property does not work for multiline textbox

  

获取或设置文本框中允许的最大字符数。   您设置的值是允许的最大字符数   文本框。默认值为0,表示该属性不是   集。

<asp:TextBox ID="Value1" Columns="2" MaxLength="3" Text="1" runat="server"/>
  

如果您想让用户知道他是否超过了金额   他写的字符,你可以使用附加的JavaScript函数   按键事件。此函数将测试输入的长度   如果达到了maxlenght,则取消字符渲染。

检查Set max length of MultiLine TextBox in ASP.Net

如果您想使用MultiLine模式,请使用java-script和RegEx方式实现目标并遵循以下参考链接:
你可以这样做:

<asp:TextBox Rows="5" Columns="80" ID="txtCommentsForSearch" MaxLength="10" onkeyDown="return checkTextAreaMaxLength(this,event,'10');"  TextMode="multiLine" CssClass="textArea" runat="server"> </asp:TextBox>

// JS

// JScript File

function checkTextAreaMaxLength(textBox, e, length) {

    var mLen = textBox["MaxLength"];
    if (null == mLen)
        mLen = length;

    var maxLength = parseInt(mLen);
    if (!checkSpecialKeys(e)) {
        if (textBox.value.length > maxLength - 1) {
            if (window.event)//IE
            {
                e.returnValue = false;
                return false;
            }
            else//Firefox
                e.preventDefault();
        }
    }
}

function checkSpecialKeys(e) {
    if (e.keyCode != 8 && e.keyCode != 46 && e.keyCode != 35 && e.keyCode != 36 && e.keyCode != 37 && e.keyCode != 38 && e.keyCode != 39 && e.keyCode != 40)
        return false;
    else
        return true;
}     

<强>参考文献:
ASP.NET - Limit number of characters in TextBox control
Limit Number Of Characters In an ASP.NET Multiline TextBox using jQuery
TextBox: Minimum and Maximum Character Length Validation using ASP.Net RegularExpression Validators
Limit the number of characters of a textbox
Specifying maxlength for multiline textbox
How to set maxlength for multiline TextBox?
asp text box limit number of characters?

答案 1 :(得分:0)

执行此操作非常简单:较新的浏览器支持maxlength元素上的textarea属性(但不支持IE9和旧版Internet Explorer)。

您可以使用javascript限制textarea,或者如果您想要显示“x chars remaining”(至少在SO中发布评论),则至少获取字符数。

对于旧浏览器,此javascript将根据maxlength检查长度并阻止用户输入。但是,由于用户可能通过复制和粘贴等方式破坏keydown方法,因此使用keyup截断任何溢出也是一个好主意。此外,如果数据进入服务器/数据库,那么截断并清理从客户端接收的输入并不是一个坏主意,以防客户端绕过表单并直接上传POST数据,在这种情况下maxlength无效。

在ASP.NET中,标记看起来像:<asp:TextBox ID="txt" runat="server" TextMode="Multiline" ClientIDMode="Static" maxlength="150"/>但是对于textarea(TextMode =“Multiline”),可能无法呈现maxlength属性(可能取决于您的ASP.NET版)。您可以在标记中验证它是否已呈现。如果没有,您可能需要在代码隐藏中操作TextBox的Attributes,如下所示:txt.Attributes["maxlength"] = "150";(假设是C#)

JS小提琴示例:http://jsfiddle.net/aymjsfdp/

// "maxlength" code for older browsers including IE9 and previous versions
var txt = document.getElementById('txt');
txt.onkeyup = function () {
    var maxlength = parseInt(this.getAttribute("maxlength")) || 0;
    if (maxlength > 0 && this.value.length > maxlength) {
        this.value = this.value.substring(0, maxlength);
        alert('text was truncated to ' + maxlength + ' characters.');
    }
    document.getElementById('length').innerHTML = this.value.length.toString();
};
txt.onkeydown = function () {
    var maxlength = parseInt(this.getAttribute("maxlength")) || 0;
    if (maxlength > 0 && this.value.length >= maxlength && (event.keyCode || event.which) > 49) {
        return false;
    }
};
TEXTAREA {
  width: 300px;
  height: 60px;
}
<div>Chars: <span id='length'></span>
</div>
<textarea id='txt' maxlength='150'></textarea>

答案 2 :(得分:-1)

另一种方式 以下代码可在以下链接中找到:

http://www.aspsnippets.com/Articles/Limit-number-of-characters-in-an-ASPNet-Multiline-TextBox-using-jQuery.aspx使用演示示例

<title>title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">script>

<script type="text/javascript" src="MaxLength.min.js">script>

<script type="text/javascript">

    $(function () {

        //Normal Configuration

        $("[id*=TextBox1]").MaxLength({ MaxLength: 10 });



        //Specifying the Character Count control explicitly

        $("[id*=TextBox2]").MaxLength(

        {

            MaxLength: 15,

            CharacterCountControl: $('#counter')

        });



        //Disable Character Count

        $("[id*=TextBox3]").MaxLength(

        {

            MaxLength: 20,

            DisplayCharacterCount: false

        });

    });

script>

头&GT;

<form id="form1" runat="server">

<div id="counter">

div>

<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Width="300" Height="100"

    Text="Mudassar Khan">asp:TextBox>

<br />

<br />

<asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Width="300" Height="100">asp:TextBox>

<br />

<br />

<asp:TextBox ID="TextBox3" runat="server" TextMode="MultiLine" Width="300" Height="100">asp:TextBox>

form>

体&GT;

HTML&GT;