2015-03-31 50 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 

这就是匹配的字符串或不在此集中的任何字符的开始重复至少一次的任何数字。

相关问题