trim
移除字符串开头和结尾的空白字符。
基础用法
typescript
import { trim } from 'radash'
console.log(trim(' hello world ')) // 'hello world'
console.log(trim('\t\nhello\n\t')) // 'hello'
console.log(trim('hello')) // 'hello'
console.log(trim(' ')) // ''
语法
typescript
function trim(str: string): string
参数
str
(string): 要处理的字符串
返回值
返回移除开头和结尾空白字符的字符串。
示例
基本空白字符移除
typescript
import { trim } from 'radash'
console.log(trim(' hello world ')) // 'hello world'
console.log(trim('hello world')) // 'hello world'
console.log(trim(' hello world ')) // 'hello world'
console.log(trim('hello')) // 'hello'
处理不同类型的空白字符
typescript
import { trim } from 'radash'
// 空格
console.log(trim(' hello ')) // 'hello'
// 制表符
console.log(trim('\thello\t')) // 'hello'
// 换行符
console.log(trim('\nhello\n')) // 'hello'
// 回车符
console.log(trim('\rhello\r')) // 'hello'
// 混合空白字符
console.log(trim('\t\n hello \n\t')) // 'hello'
console.log(trim(' \t\nhello\n\t ')) // 'hello'
处理边界情况
typescript
import { trim } from 'radash'
// 空字符串
console.log(trim('')) // ''
// 只有空白字符
console.log(trim(' ')) // ''
console.log(trim('\t\n')) // ''
console.log(trim(' \t\n ')) // ''
// 没有空白字符
console.log(trim('hello')) // 'hello'
console.log(trim('hello world')) // 'hello world'
处理特殊字符
typescript
import { trim } from 'radash'
console.log(trim(' hello@world ')) // 'hello@world'
console.log(trim(' hello#world ')) // 'hello#world'
console.log(trim(' hello$world ')) // 'hello$world'
console.log(trim(' hello%world ')) // 'hello%world'
console.log(trim(' hello^world ')) // 'hello^world'
console.log(trim(' hello&world ')) // 'hello&world'
处理数字和符号
typescript
import { trim } from 'radash'
console.log(trim(' 123 ')) // '123'
console.log(trim(' 3.14 ')) // '3.14'
console.log(trim(' -42 ')) // '-42'
console.log(trim(' +100 ')) // '+100'
处理中文和特殊字符
typescript
import { trim } from 'radash'
console.log(trim(' 你好世界 ')) // '你好世界'
console.log(trim(' Hello 世界 ')) // 'Hello 世界'
console.log(trim(' 🌟hello🌟 ')) // '🌟hello🌟'
console.log(trim(' 🎉🎊 ')) // '🎉🎊'
处理HTML内容
typescript
import { trim } from 'radash'
console.log(trim(' <div>hello</div> ')) // '<div>hello</div>'
console.log(trim(' <p>Hello World</p> ')) // '<p>Hello World</p>'
console.log(trim(' <span> content </span> ')) // '<span> content </span>'
处理JSON字符串
typescript
import { trim } from 'radash'
const jsonStr = ' {"name": "Alice", "age": 25} '
console.log(trim(jsonStr)) // '{"name": "Alice", "age": 25}'
const prettyJson = `
{
"name": "Alice",
"age": 25
}
`
console.log(trim(prettyJson)) // '{\n "name": "Alice",\n "age": 25\n }'
处理SQL查询
typescript
import { trim } from 'radash'
const sqlQuery = `
SELECT name, age
FROM users
WHERE age > 18
`
console.log(trim(sqlQuery)) // 'SELECT name, age\n FROM users\n WHERE age > 18'
处理配置文件内容
typescript
import { trim } from 'radash'
const configContent = `
server:
host: localhost
port: 3000
database:
url: postgresql://localhost:5432/mydb
`
console.log(trim(configContent)) // 'server:\n host: localhost\n port: 3000\n database:\n url: postgresql://localhost:5432/mydb'
处理用户输入
typescript
import { trim } from 'radash'
function processUserInput(input: string) {
const trimmed = trim(input)
if (trimmed === '') {
return '输入不能为空'
}
return `处理后的输入: "${trimmed}"`
}
console.log(processUserInput(' hello world ')) // '处理后的输入: "hello world"'
console.log(processUserInput(' ')) // '输入不能为空'
console.log(processUserInput('hello')) // '处理后的输入: "hello"'
处理表单数据
typescript
import { trim } from 'radash'
function validateFormData(data: Record<string, string>) {
const errors: string[] = []
const cleaned: Record<string, string> = {}
for (const [key, value] of Object.entries(data)) {
const trimmed = trim(value)
cleaned[key] = trimmed
if (trimmed === '') {
errors.push(`${key} 不能为空`)
}
}
return { cleaned, errors }
}
const formData = {
name: ' Alice ',
email: ' alice@example.com ',
phone: ' ',
address: ' Beijing, China '
}
const result = validateFormData(formData)
console.log(result)
// {
// cleaned: {
// name: 'Alice',
// email: 'alice@example.com',
// phone: '',
// address: 'Beijing, China'
// },
// errors: ['phone 不能为空']
// }
处理API响应
typescript
import { trim } from 'radash'
function processApiResponse(response: any) {
return {
message: trim(response.message || ''),
data: response.data,
status: response.status
}
}
const apiResponse = {
message: ' Success ',
data: { id: 1, name: 'Alice' },
status: 200
}
const processed = processApiResponse(apiResponse)
console.log(processed) // { message: 'Success', data: { id: 1, name: 'Alice' }, status: 200 }
处理文件内容
typescript
import { trim } from 'radash'
function processFileContent(content: string) {
const lines = content.split('\n')
const trimmedLines = lines.map(line => trim(line))
const nonEmptyLines = trimmedLines.filter(line => line !== '')
return nonEmptyLines.join('\n')
}
const fileContent = `
line 1
line 2
line 3
line 4
`
const processed = processFileContent(fileContent)
console.log(processed)
// line 1
// line 2
// line 3
// line 4
处理CSV数据
typescript
import { trim } from 'radash'
function processCSVLine(line: string) {
const columns = line.split(',')
return columns.map(column => trim(column))
}
const csvLine = ' Alice , 25 , alice@example.com '
const processed = processCSVLine(csvLine)
console.log(processed) // ['Alice', '25', 'alice@example.com']
处理查询参数
typescript
import { trim } from 'radash'
function parseQueryString(queryString: string) {
const params = new URLSearchParams(queryString)
const result: Record<string, string> = {}
for (const [key, value] of params.entries()) {
result[key] = trim(value)
}
return result
}
const queryString = 'name= Alice &email= alice@example.com &age= 25 '
const parsed = parseQueryString(queryString)
console.log(parsed) // { name: 'Alice', email: 'alice@example.com', age: '25' }
处理环境变量
typescript
import { trim } from 'radash'
function getEnvVar(key: string, defaultValue = '') {
const value = process.env[key] || defaultValue
return trim(value)
}
// 模拟环境变量
process.env.API_URL = ' https://api.example.com '
process.env.DATABASE_URL = ' postgresql://localhost:5432/mydb '
process.env.SECRET_KEY = ' my-secret-key '
console.log(getEnvVar('API_URL')) // 'https://api.example.com'
console.log(getEnvVar('DATABASE_URL')) // 'postgresql://localhost:5432/mydb'
console.log(getEnvVar('SECRET_KEY')) // 'my-secret-key'
console.log(getEnvVar('NON_EXISTENT', 'default')) // 'default'
处理日志消息
typescript
import { trim } from 'radash'
function formatLogMessage(level: string, message: string, context?: any) {
const trimmedMessage = trim(message)
const timestamp = new Date().toISOString()
return {
timestamp,
level,
message: trimmedMessage,
context
}
}
const logEntry = formatLogMessage('INFO', ' User login successful ', { userId: 123 })
console.log(logEntry)
// {
// timestamp: '2023-12-31T12:00:00.000Z',
// level: 'INFO',
// message: 'User login successful',
// context: { userId: 123 }
// }
处理模板字符串
typescript
import { trim } from 'radash'
function processTemplate(template: string, data: Record<string, any>) {
const processedTemplate = trim(template)
return processedTemplate.replace(/\{\{(\w+)\}\}/g, (match, key) => {
const value = data[key] || ''
return trim(String(value))
})
}
const template = `
Hello {{name}},
Welcome to {{company}}!
`
const data = {
name: ' Alice ',
company: ' Tech Corp '
}
const result = processTemplate(template, data)
console.log(result)
// Hello Alice,
// Welcome to Tech Corp!
处理多行文本
typescript
import { trim } from 'radash'
function processMultilineText(text: string) {
const lines = text.split('\n')
const trimmedLines = lines.map(line => trim(line))
const nonEmptyLines = trimmedLines.filter(line => line !== '')
return nonEmptyLines.join('\n')
}
const multilineText = `
Line 1
Line 2
Line 3
Line 4
`
const processed = processMultilineText(multilineText)
console.log(processed)
// Line 1
// Line 2
// Line 3
// Line 4
注意事项
- 空白字符: 移除空格、制表符、换行符、回车符等
- 只处理两端: 只移除开头和结尾的空白字符,中间的空白字符保留
- 空字符串: 空字符串或只有空白字符的字符串会返回空字符串
- 不可变性: 返回新字符串,不修改原字符串
- 性能: 处理操作很快,适合频繁使用
与其他方法的区别
String.trim()
: 原生方法,功能相同trim()
: radash提供的字符串修剪方法trimStart()
: 只移除开头的空白字符trimEnd()
: 只移除结尾的空白字符
实际应用场景
- 用户输入处理: 清理用户输入的前后空白
- 表单验证: 验证表单字段是否为空
- 文件处理: 清理文件内容的前后空白
- API处理: 清理API响应中的字符串
- 配置处理: 清理配置文件中的值