此文章讲解trim在JavaScript和Sql中的用法
今天凑巧碰到了trim()的用法,笔者也是查了相关内容,并梳理一下知识点,此文章不涉及Mybatis 中的 trim标签用法
1、JavaScript
var str = " Runoob ";
alert(str.trim());
输出结果:
Runoob
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
trim() 方法不会改变原始字符串。
trim() 方法不适用于 null, undefined, Number 类型。
原理是trim 利用replace 方法 也可自己定义
例:
function myTrim(s) {
return x.replace(/^\s+|\s+$/g,' ');
}
function myFunction() {
var str = myTrim(" Runoob ");
document.write(str)
}
借鉴于JavaScript菜鸟教程 链接地址
符号含义:
\s: space, 空格
+: 一个或多个
^: 开始,^\s,以空格开始
$: 结束,以空格结束
|:或者
/g:global, 全局
replace() 替换
2、SQL Trim
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。
TRIM( ), RTRIM( ), LTRIM( )
各种 trim 函数的语法如下:
TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。
如果我们没有列出 [要移除的字串] 是什么的话,那么会默认把空白移除。
LTRIM(字串): 将所有字串起头的指定的字符移除。
RTRIM(字串): 将所有字串结尾的指定的字符移除。
接下来以 ORACLE 数据库为例
for example
2.1 TRIM( ) 用例
select trim(leading from ' sssssssaaaa ') leadingtrim from dual ;
sssssssaaaa (会清除该字符串起头的空格)
如果想把起头的s去掉的话sql如下:
select trim(leading 's' from 'sssssssaaaa ') leadingtrim from dual ;
aaaa (注意此时的字符串起头不是空格而s,会清除起头的s)
同理
select trim(trailing from ' sssssssaaaa ') trailingtrim from dual ;
sssssssaaaa(会清除该字符串结尾的空格)
如果想把结尾的a去掉的话sql如下:
select trim(trailing 'a' from 'sssssssaaaa') trailingtrim from dual ;
sssssss(注意此时的字符串结尾不是空格而是a,会清除结尾的a)
select trim(both 's' from 'sssssssaaaassssss') bothtrim from dual ;
aaaa(清除了两端的s)
2.2 RTRIM( )用例
select rtrim(' sssssss ') rtrim from dual;
sssssss(将字串结尾的空白移除)
注意当想移除起头或结尾非空白字符时 利用 ltrim(string1,string2)和rtrim(string1,string2)
从字符串string1左侧(右侧)开始去除与string2字符集合中单个字符匹配的字符,直到在string1中遇上某个字符,该字符不在string2字符集合中。也就是从string1中移除string2所包含的字符,而不是移除string2整体字符串
例1:
select rtrim( 'sssssssaassss' ,'ssss') rtrim from dual;
sssssssaa(将字串结尾的s移除掉)
例2:
select rtrim( 'stssssssaassss' , 'ssssa') rtrim from dual;
st(将结尾的s和a移除掉)
2.3 LTRIM( )用例
select ltrim(' sssssss ') ltrim from dual;
sssssss (将字串起头的空白移除)
例1:
select ltrim( 'sssssssaassss' ,'ssss') ltrim from dual;
aassss(将字串起头的s移除掉)
例2:
select ltrim( 'stssssssaassss' , 'ssssa') ltrim from dual;
tssssssaassss(只将起头的s移除掉了)