ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

正则表达式小技巧,sql中in的字符串处理

2022-02-27 17:00:53  阅读:299  来源: 互联网

标签:正则表达式 单引号 replace getElementById sql 字符串 js sqltext


工作中我经常写sql,当写带in的语句时,需要敲好多单引号,逗号,挺累手的,还易出错。因此,我写了一个小工具,处理这种繁琐工作。原理简单,利用正则表达式匹配、替换。

先看界面,一个html页面,包含三个js函数。下面我会一一介绍:

一、 sql_in()按钮

 为多个字符串加上单引号和逗号,结果可以直接用于sql中的in语句,效果如下:

按钮中的js函数:

function sql_in1(){

    //获取需要处理的字段,即上面的textarea里面的内容
    var sqltext = document.getElementById('sqltext').value;
    // 将开头和结尾的空格去掉
    sqltext = sqltext.replace(/(^\s*)|(\s*$)/g, "");
    //将每行结尾的回车替换成一个单引号、逗号、回车,再加一个单引号
    sqltext = sqltext.replace(/"/g,'"+"\\""+"').replace(/[\r\n]/g,'\'\,\n\'');
    //将结果的开头和结尾加上单引号
    sqltext ="'" +sqltext +"'";
    //将结果输出到下面的textarea
    document.getElementById('javatext').value = sqltext;

}

可直接将处理结果复制到sql语句中:

select * from table1 where id in ('30029',
'30021',
'30022',
'30027',
'30020')

二、sql_in(,)按钮

效果如下:

 按钮js代码:

function sql_in2(){

    var sqltext = document.getElementById('sqltext').value;
    // 将开头和结尾的空格去掉
    sqltext = sqltext.replace(/(^\s)|(\s$)/g, "");
    //将逗号替换成一个单引号、逗号、回车,再加一个单引号
    sqltext = sqltext.replace(/[,]/g,'',\n'');
    //将结果的开头和结尾加上单引号
    sqltext ="'" +sqltext +"'";
    document.getElementById('javatext').value = sqltext;
}

三、js_in(,)按钮

效果如下:

  按钮js代码:

function js_in(){

    var sqltext = document.getElementById('sqltext').value;
    // 将开头和结尾的空格去掉
    sqltext = sqltext.replace(/(^\s)|(\s$)/g, "");
    //将每行结尾的回车替换成一个逗号
    sqltext = sqltext.replace(/[\r\n]/g,',');
    document.getElementById('javatext').value = sqltext;

}

 

以上是我工作中经常遇到的需要处理的字符串格式,欢迎热心的小伙伴补充其他常见的形式。

下面是这个工具的下载链接,欢迎各位下载:

 https://files.cnblogs.com/files/iceriver315/sqlconvert2.rar?t=1645951574

 

标签:正则表达式,单引号,replace,getElementById,sql,字符串,js,sqltext
来源: https://www.cnblogs.com/iceriver315/p/15942713.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有