您好我想使用jquery或javascript执行此功能。如果用户输入的文本超过100个字符,我希望javascript自动将打开和结束括号放在文本中。
例如:
如果您在2007年6月13日之后购买或升级了RegexBuddy,可以在下面输入您的电子邮件地址和RegexBuddy用户ID来下载最新版本。如果您丢失了用户ID,请输入您的电子邮件地址并将用户ID字段留空。然后,您将收到一封包含您的用户ID的电子邮件。
使用javascript:
[如果您在2007年6月13日之后购买或升级了RegexBuddy,则可以通过输入您的电子邮件地址和[下面的RegexBuddy用户ID]下载最新版本。如果您丢失了用户ID,请输入您的电子邮件地址并将用户ID字段留空。您将[]然后收到包含您的用户ID的电子邮件。]
这可以实现吗?任何帮助都会受到重视。
谢谢。
答案 0 :(得分:1)
这是一个简单的基于正则表达式的解决方案;你认为合适的调整:
var s = "If you purchased or upgraded RegexBuddy after 13 June 2007, you can download the latest version by typing in your email address and RegexBuddy user ID below. If you lost your user ID, type in your email address and leave the user ID field blank. You will then receive an email message with your user ID.";
var chunked = s.replace(/(.{1,100})(?:\b|$)/g,'[$1]');
// "[If you purchased or upgraded RegexBuddy after 13 June 2007, you can download the latest version by ][typing in your email address and RegexBuddy user ID below. If you lost your user ID, type in your ][email address and leave the user ID field blank. You will then receive an email message with your ][user ID.]"
答案 1 :(得分:0)
你要求的东西如下。但这不是防弹。我宁愿将事件更改为在表单上提交,这样您就可以保证不会弄乱用户输入的内容,尤其是在复制/粘贴事件中。
<input id="myInput"/>
$(document).ready(function(){
$('#myInput').keypress(function() {
var string = $(this).val();
if (string.length >= 100 && !$(this).hasClass("bracketed")){
string = "[" + string + "]";
$(this).val(string);
$(this).addClass("bracketed");
}
// Stripping brackets if delete key is used
else if (string.length <= 101 && $(this).hasClass("bracketed")){
string = string.slice(1,100)
$(this).val(string);
$(this).removeClass("bracketed");
}
});
});
您可以在此处弄乱上述解决方案:http://jsfiddle.net/DAhq5/