[英]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, "");
});
這將用-
替換所有空格,然后刪除所有非az
, 0-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.