我正在使用MultiLine Textbox
现在我想允许其中的所有字符,我还想将文本框的限制设置为150个字符。所以我想使用正则表达式,所以任何人都可以帮助我。
我正在使用这个正则表达式:
"^[A-Za-z0-9\s!@#$%^&*()_+=-`~\\\]\[{}|';:/.,?><]*{1,150}$"
所有工作正常,但不会将字符限制为150
提前致谢。
答案 0 :(得分:0)
如果TextMode属性未设置为MultiLine,则可以使用TextBox.MaxLength Property。 MaxLength 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)
另一种方式 以下代码可在以下链接中找到:
<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;