整理了工作中用到的一些正则匹配。
去除空格
1 | // 仅去除前面的空格 ltrim |
关键字匹配
1 | // 转义正则表达式特殊字符 |
html标签
去掉所有的html标签
1 | str.replace(/<[^>]+>/g,'') |
去掉所有的html标签,img标签除外
1 | str.replace(/<(?!img).*?>/g, '') |
去掉所有的html标签,img和p标签除外
1 | str.replace(/<(?!img|p|\/p).*?>/g, '') |
提取img标签
1 | str.match(/(<img(?!.*?alt=(['"]).*?\2)[^>]*)(>)/g) |
匹配p标签及内部内容
1 | str.replace(/<p>[\s\S]*?<\/p>/g, '') |
匹配html table td 内的数据
1 | const html = '<table><tbody><tr><td class="et1" height="19" width="109">3766</td><td class="et1" height="19" width="100">110000</td><td class="et1" height="19" width="132" >北京</td><td class="et1" height="19" width="121">116.3809433</td><td class="et1" height="19" width="135">39.9236145</td></tr><tr><td class="et1" height="19" width="109" >3783</td><td class="et1" height="19" width="100">120000</td><td class="et1" height="19" width="132">天津</td><td class="et1" height="19" width="121">117.2034988</td><td class="et1" height="19" width="135">39.13111877</td></tr></tbody></table>' |
提取url链接
1 | const urlPattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi |
提取url所有参数
1 | function getUrlParameters(url) { |
1 | // #section为位置标识符 |
删除url中的某个参数
1 | function removeUrlParameter(url, key) { |
1 | // example |
URL追加参数
1 | function insertParam(url, key, value) { |
1 | // example |
删除URL最后一个斜杆
1 | function removeTrailingSlashes(url) { |
金钱千分位
1 | const money = '102590.45' |
匹配@
1 | const str = '快来@随便起的昵称 @昵称1 @昵称2 就等你们了@昵称3 @昵称4' |
单词边界
1 | var str = " it's mine and you can't have it. "; |
首字母大写
1 | const str1 = str.replace(/\b\w/, s => s.toUpperCase()); |
单词首字母大写
1 | const str2 = str.replace(/\w\S*/g, (s) => { |
/\b\w/g
会把英文缩写it's
和can't
拆成两部分,所以不能使用\b
。