国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > regex > 正文

javascript中使用正則表達式刪除前后空格的方法

2020-01-20 22:10:24
字體:
來源:轉載
供稿:網友

去掉首位空格

復制代碼 代碼如下:

str=str.replace(/^/s+|/s+$/g,'');

js正則表達式刪除字符串前后空格

String.prototype.trim=function(){var reSpace=/^/s*(.*?)/s*$/;return this.replace(reSpace,”$1″);};

讓我們分析一下第二行的正則表達式

^ 行開始

/s*
匹配字符前面的所有空格,貪婪模式重復

(.*?)

捕獲組,勉強模式重復匹配任意字符,也就是我們最終需要(去掉前后空格后)的字符,這個不是很好理解(我認為)

第一:我原來認為在捕獲組內也應該判斷第一個字符應該不能為空格即寫成([^/s+])的形式,但這是完全沒有必要的因為捕獲組前面的/s*已經能捕獲開頭的所有的空格字符了,你認為的捕獲組的字符開始范圍與正則表達式匹配的字符范圍是不一樣的,汗~有點說不清楚了,呵呵

第二:其中?的作用,他的作用就是勉強模式重復前面的字符,什么意思呢?就是如果我用(.*a)去匹配aaaaaaa字符串的結果就是(aaaaaaa)源字符串這叫貪婪模式,如果用(.*?a)去匹配aaaaaaa的話他就會先匹配第一a,然后是第二個a,然后是第三個a…….這就叫勉強模式匹配有的地方也叫懶惰模式匹配。通俗一點(大家都喜歡通俗的解釋,呵呵)就是前者是從后往前去匹配盡可能多的字符,而后者是從前往后匹配

第三:我們還要不要去關心捕獲組中后面的空格呢?因為捕獲組中的”.”也是可以匹配空格的,先前我也是考慮這個問題大部分時間都浪費在這上面了.其實這和考慮要不要排除捕獲組前面的空格一樣的道理,后面的/s*已經給我們處理了

/s*匹配字符后面的空格

―――――――――――――――――――分割線――――――――――――――――――

主站蜘蛛池模板: 张家港市| 彭山县| 雷州市| 门头沟区| 深圳市| 印江| 上栗县| 浙江省| 安西县| 正定县| 阳江市| 屏东市| 北流市| 济源市| 陆丰市| 延寿县| 东方市| 洪江市| 乐清市| 南丰县| 沙雅县| 桃园县| 宣恩县| 柘城县| 象州县| 永仁县| 宣汉县| 无锡市| 济宁市| 侯马市| 徐水县| 仁布县| 滦南县| 夹江县| 长垣县| 舒城县| 启东市| 星子县| 嘉黎县| 湘潭市| 南华县|