2015-03-31 370 views
-2

我正在使用javaScript,我想限制字符串的第一個字符。我有以下正則表達式來避免整個字符串中的特殊字符。如何使用正則表達式限制字符串的第一個字符

/[^0-9_a-zA-Z\s]/g 
var text = 'foo#' 
var transformed = text.replace(/[^0-9_a-zA-Z%$#\s]/g, '');// 'foo' 

但另外給我不希望任何數量只是在字符串的開頭,但是是在字符串的其他位置,這將是對於正則表達式?

var text = '1fo4565o' 
var transformed = text.replace([?], '');// 'fo4565o' 
+1

重複如此,如此多的問題。 – Nit 2015-03-31 20:07:06

+1

「任何數字」,好吧,那就是'\ d'吧?即使你自己的調料'[0-9]'也行。 – usr2564301 2015-03-31 20:08:11

+1

但''foo#'應用''[^ 0-9_a-zA-Z%$#\ s]'產生'foo#'。 – elias 2015-03-31 20:13:13

回答

1

做這種工作的一些有用的網站是https://regex101.com/http://www.regexr.com/,因爲他們告訴你目標的文字效果,告訴你到底每個部分在做什麼,以及提供一個備忘單。

如果您只想替換第一個字符,請使用^字符將其錨定到開頭。 \ d +是至少重複一次的任何數字字符。 |是匹配這個組還是下一個組。 所以結合我們得到:

/^\d+|[^0-9_a-zA-Z%$#\s]/g 

這就是匹配的字符串或不在此集中的任何字符的開始重複至少一次的任何數字。

相關問題