我们在做后台发布文章或者输入的时候,通常用复文本框,我前面文章总结了前端常用的复文本,但是,我们在前台用户输入的时候,通常限制复文本的输入,当然,你也可以允许用户用复文本,不过要在提交的时候或者后台对提交的内容进行过滤或者审核。
下面我们来总结一下前端js复文本常用的函数。
下面是斜体、下划线、居中、粗体,插入图片、创建工具条的函数
//斜体
function italicize(obj) {
if (document.selection && document.selection.type == "Text") {
AddTxt="[i]"+text+"[/i]";
AddText(obj,AddTxt);
} else {
txt=prompt('文字将变斜体','文字');
if (txt!=null) {
AddTxt="[i]"+txt+"[/i]";
AddText(obj,AddTxt);
}
}
}
//下划线
function underline(obj) {
if (document.selection && document.selection.type == "Text") {
AddTxt="[u]"+text+"[/u]";
AddText(obj,AddTxt);
} else {
txt=prompt('下划线文字','文字');
if (txt!=null) {
AddTxt="[u]"+txt+"[/u]";
AddText(obj,AddTxt);
}
}
}
//居中
function center(obj) {
if (document.selection && document.selection.type == "Text") {
AddTxt="[align=center]"+text+"[/align]";
AddText(obj,AddTxt);
} else {
txt2=prompt('对齐样式\n输入 ’center’ 表示居中, ’left’ 表示左对齐, ’right’ 表示右对齐.',"center");
while ((txt2!="") && (txt2!="center") && (txt2!="left") && (txt2!="right") && (txt2!=null)) {
txt2=prompt('错误!\n类型只能输入 ’center’ 、 ’left’ 或者 ’right’.',"");
}
txt=prompt('要对齐的文本','文字');
if (txt!=null) {
AddTxt="[align="+txt2+"]"+txt+"[/align]";
AddText(obj,AddTxt);
}
}
}
//粗体
function bold(obj) {
if (document.selection && document.selection.type == "Text") {
AddTxt="[b]"+text+"[/b]";
AddText(obj,AddTxt);
} else {
txt=prompt('文字将被变粗.','文字');
if (txt!=null) {
AddTxt="[b]"+txt+"[/b]";
AddText(obj,AddTxt);
}
}
}
//插入图片
function insimg(obj){
if (document.selection && document.selection.type == "Text") {
AddTxt="[img]"+text+"[/img]";
AddText(obj,AddTxt);
} else {
txt=prompt('请输入图片完整URL地址:','http://');
if (txt!=null) {
AddTxt="[img]"+txt+"[/img]";
AddText(obj,AddTxt);
}
}
}
//插入URL
function insurl(obj,is){
if (document.selection && document.selection.type == "Text") {
AddTxt="[url]"+text+"[/url]";
AddText(obj,AddTxt);
} else {
if(is==1){
txt=prompt('请输入本站站内URL:','http://www.haorooms.com');
}else{
txt=prompt('请输入URL地址:','http://');
}
if (txt!=null) {
AddTxt="[url]"+txt+"[/url]";
AddText(obj,AddTxt);
}
}
}
//创建工具条
function ToolBars(areaname,isimg,insite){
document.write("<a onClick=\"bold(document.getElementByIdx_xx('"+areaname+"'))\"><img title=\"粗体\" src=\"/image/post1.gif\" ></a>");
document.write(" <a onClick=\"italicize(document.getElementByIdx_xx('"+areaname+"'))\"><img title=\"斜体\" src=\"/image/post2.gif\" ></a>");
document.write(" <a onClick=\"underline(document.getElementByIdx_xx('"+areaname+"'))\"><img title=\"下划线\" src=\"/image/post3.gif\" ></a>");
document.write(" <a onClick=\"center(document.getElementByIdx_xx('"+areaname+"'))\"><img title=\"居中\" src=\"/image/post4.gif\" ></a>");
if(isimg){
document.write(" <a onClick=\"insimg(document.getElementByIdx_xx('"+areaname+"'))\"><img title=\"插入图片\" src=\"/image/post5.gif\" ></a>");
}
if(insite){
document.write(" <a onClick=\"insurl(document.getElementByIdx_xx('"+areaname+"'),0)\"><img title=\"插入url\" src=\"/image/post6.gif\" ></a>");
}else{
document.write(" <a onClick=\"insurl(document.getElementByIdx_xx('"+areaname+"'),1)\"><img title=\"插入url\" src=\"/image/post6.gif\" ></a>");
}
document.write("<br /><a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=001]')\"><img src=\"/image/em/001.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=002]')\"><img src=\"/image/em/002.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=003]')\"><img src=\"/image/em/003.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=004]')\"><img src=\"/image/em/004.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=005]')\"><img src=\"/image/em/005.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=006]')\"><img src=\"/image/em/006.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=007]')\"><img src=\"/image/em/007.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=008]')\"><img src=\"/image/em/008.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=009]')\"><img src=\"/image/em/009.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=010]')\"><img src=\"/image/em/010.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=011]')\"><img src=\"/image/em/011.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=012]')\"><img src=\"/image/em/012.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=013]')\"><img src=\"/image/em/013.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=014]')\"><img src=\"/image/em/014.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=015]')\"><img src=\"/image/em/015.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=016]')\"><img src=\"/image/em/016.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=017]')\"><img src=\"/image/em/017.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=018]')\"><img src=\"/image/em/018.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=019]')\"><img src=\"/image/em/019.gif\"></a>");
document.write("<a onclick=\"AddText(document.getElementByIdx_xx('"+areaname+"'),'[em=020]')\"><img src=\"/image/em/020.gif\"></a>");
}
注意,用js的selection 对象 来监听文字是否选中。用法如上:document.selection
下面来看下复文本的一些验证操作:
//输入数字拦截
function InputNum(event){
//48~57 主键盘数字 96~105 小键盘数字 144 小键盘数字切换键 110 小键盘 点
if((event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=96 && event.keyCode<=105) || event.keyCode==144 || event.keyCode==110 || event.keyCode==190 || event.keyCode==8 || event.keyCode==46 || event.keyCode==39 || event.keyCode==37 || event.keyCode==13){
return true;
}else{
return false;
}
}
//检查输入是否为FLOAT数字
function CheckFloat(obj,pre){
thisfloat=parseFloat(obj.value);
if(isNaN(thisfloat)){
obj.value="0";
}else{
obj.value=Math.ceil(thisfloat*Math.pow(10,pre))/Math.pow(10,pre);
}
}
//检查file表单项是否为图片
function CheckImg(ImgFile){
if(ImgFile){
if(ImgFile.lastIndexOf(".")>=0){
ext=ImgFile.substr(ImgFile.lastIndexOf(".")).toLowerCase();
exts="|.jpeg|.jpg|.gif|.png|";
if(exts.indexOf("|"+ext+"|")<0){
return false;
}else{
return true;
}
}else{
return false;
}
}else{
return true;
}
}
//检查图片文件的尺寸
function CheckSize(ImgFile,MaxSize){
if(ImgFile){
var img=null;
if(img)img.removeNode(true);
img=document.createElement_x("img");
img.style.position="absolute";
img.style.display="none";
if(window.attachEvent){
img.attachEvent("onreadystatechange",orsc);
img.attachEvent("onerror",oe);
document.body.insertAdjacentElement("beforeend",img);
}else{
img.addEventListener("onreadystatechange",orsc,false);
img.addEventListener("onerror",oe,false);
document.body.appendChild(img)
}
img.src=ImgFile;
}
function oe(){
alert("指定图片载入失败");
}
function orsc(){
if(img.readyState!="complete"){return false;};
if(parseInt(img.fileSize)>MaxSize*1000){
alert("当前图片文件 "+img.fileSize/1000+" K\n超过最大限制"+MaxSize+"K\n\n强制提交将可能造成超时失败");
}
}
}
//获得字节长度
function ByteLength(string){
return string.replace(/[^\x00-\xff]/g,"00").length;
}
除此之外,我们为了让用户避免第二次输入用户名和密码,经常是用cookie来进行用户名的临时存储下面是js读取cookie和写入cookie的操作
//读取Cookie
function getCookie(Name){
var re=new RegExp(Name+"=[^;]+", "i");
if (document.cookie.match(re)){
return document.cookie.match(re)[0].split("=")[1];
}else{
return "";
}
}
//写入COOKIE
function setCookie(name, value){
document.cookie = name+"="+value
}
为了让用户操作爽一些,还有一些快捷键操作,对ctrl+enter的操作等等,如下:
//实现Ctrl+Enter 提交的效果
function QuickPost(event){
if((event.ctrlKey && event.keyCode == 13)||(event.altKey && event.keyCode == 83)){
event.srcElement.form.submit();
}
}
还有一些简单的js验证和收藏:
//判断用户名是否符合要求
function usernamecheck(string){
if((string.length<4)||(string.length>20)){return false;}
var re;
re=new RegExp("^[a-z|A-Z|0-9][a-z|A-Z|0-9|-]+$");
return re.test(string);
}
//判断密码是否符合规范
function passwordcheck(string){
var re;
re=new RegExp("^[0-9]+$");
return !re.test(string);
}
//收藏指定页面
function addBookmark(title,url) {
if (window.sidebar) {
window.sidebar.addPanel(title, url,"");
} else if( document.all ) {
window.external.AddFavorite( url, title);
} else if( window.opera && window.print ) {
return true;
}
}
//判断字符中是否包含有URL地址
function urlcheck(string){
var re;
re=new RegExp("http://");
return re.test(string.toLowerCase());
}
//判断电子邮箱是否符合规范
function emailcheck(string){
var re;
re=new RegExp("^[\\w-_\\.]+@([a-z|0-9|-]+\\.)+[a-z]{2,5}$");
return re.test(string.toLowerCase());
}
//向某个对象发送一个Click事件
function toclick(objid){
var obj=document.getElementByIdx_xx(objid);
if(document.all){
obj.fireEvent("onclick");
}else{
var e=document.createEvent('MouseEvent');
e.initEvent('click',false,false);
obj.dispatchEvent(e);
}
}
//判断字符串的字节数
function strlen(string){
var str="";
str=string;
str=str.replace(/[^\x00-\xff]/g,"**");
return str.length;
}
//一个可以实现key value 功能的对象
function GSArrays(){
this.keys=new Array();
this.values=new Array();
this.set=function (key,value){
for(i=0;i<this.keys.length;i++){
if(this.keys[i]==key){
this.values[i]=value;
return true;
}
}
this.keys[this.keys.length]=key;
this.values[this.values.length]=value;
}
this.get=function (key){
for(i=0;i<this.keys.length;i++){
if(this.keys[i]==key){
return this.values[i];
}
}
}
}
//将固定格式的Ajax传递数据拆分成 key value 的对象
function SplitToArray(str){
var strs,tems;
var MyGs=new GSArrays();
strs=str.split("\n");
var arrays=new Array();
for(i=0;i<strs.length;i++){
tems=strs[i].split("\t");
if(tems.length==1){
MyGs.set(tems[0],"");
}else if(tems.length==2){
MyGs.set(tems[0],tems[1]);
}
}
return MyGs;
}
var text = "";
//选框
function getActiveText(selectedtext) {
text = (document.all) ? document.selection.createRange().text : document.getSelection();
if (selectedtext.createTextRange) {
selectedtext.caretPos = document.selection.createRange().duplicate();
}
return true;
}
//插入文本
function AddText(obj,NewCode)
{
if (obj.createTextRange && obj.caretPos)
{
var caretPos = obj.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
}
else
{
obj.value+=NewCode
}
setfocus(obj);
}
//获得焦点
function setfocus(obj)
{
obj.focus();
}
上面就是我对js复文本函数及常用的js验证做的总结,朋友们有什么问题的话,可以相互交流!欢迎留言!