簡體   English   中英

正則表達式刪除尾隨空間

[英]RegEx to Remove Trailing Space

我有以下正則表達式:

$('.my-selector').each(function(){
  var t = $(this).text(),
      id = t.toLowerCase().replace(/\s+/g, '-');
  id  = id.replace(/[^a-zA-Z0-9-]/g, "");
});

這將用-替換所有空格,然后刪除所有非az0-9-字符。 此方法有效,但我注意到一件事,如果我有一個尾隨空格,它將變為- 舉些例子。 My (test) string變為my-test-string-

如何刪除最后一個- (或 )從字符串的最末端開始?

最簡單的選擇是在替換空白之前鏈接.trim()方法 這樣,尾隨空白將被刪除。

string.toLowerCase().trim().replace(/\s+/g, '-')

它將輸出my-test-string

var text = 'My (test) string ';
var id = text.toLowerCase().trim().replace(/\s+/g, '-')
             .replace(/[^a-zA-Z0-9-]/g, '');

console.log(id); // my-test-string

當然,您也可以選擇使用負前瞻,以防止結尾處的空白被替換:

string.toLowerCase().replace(/\s+(?!\s*$)/g, '-')

嘗試

 $('.my-selector').each(function(){ var t = $(this).text(), id = t.toLowerCase().replace(/\\s+/g, '-'); id = id.replace(/[^a-zA-Z0-9-]/g, "").replace(/-$/, ''); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM