Javascript 修改前导空格的正则表达式

Javascript 修改前导空格的正则表达式,javascript,regex,Javascript,Regex,我有一个很好用的正则表达式(字母数字加一些标点符号),但是我想删除前导空格,同时在其他地方允许空格。我需要改变什么 var TheCleanString = TheInput.replace(/[^a-zA-Z0-9 \\s\(\)\.\-]+/g, ''); 搜索^[\t]+并替换为nothing以删除前导空格(空格和制表符) 抄袭: - 另一个选项是使用trim()您应该使用^标记字符串的开头 你可以用这样的东西。将其替换为$1将得到不带前导空格的字符串 ^[ ]+(.*) 如果您想使用

我有一个很好用的正则表达式(字母数字加一些标点符号),但是我想删除前导空格,同时在其他地方允许空格。我需要改变什么

var TheCleanString = TheInput.replace(/[^a-zA-Z0-9 \\s\(\)\.\-]+/g, '');

搜索^[\t]+并替换为nothing以删除前导空格(空格和制表符)

抄袭:

-


另一个选项是使用trim()

您应该使用
^
标记字符串的开头

你可以用这样的东西。将其替换为$1将得到不带前导空格的字符串

^[ ]+(.*)

如果您想使用单个RegExp,以下是我的建议:

TheInput.replace(/(^\s+|[^a-zA-Z0-9 \\s\(\)\.\-]+)/g, '');

但是如果我是你,我会使用多种
replace
方法,因为这样更容易理解代码:

TheInput.replace(/[^a-zA-Z0-9 \\s\(\)\.\-]+/g, '').replace(/^\s+/, '');
查找:

 #  /(?:^\s+|[^a-zA-Z0-9\s().-]+)/

 (?: ^ \s+ | [^a-zA-Z0-9\s().-]+ )
替换:

''

再次使用
替换
方法怎么样<编码>输入。替换(/[^a-zA-Z0-9\\s\(\)\.\-]+/g')。替换(/^\s+/,”)
听起来你只是在寻找一个
.trim()
函数。不,我不是在寻找.trim()函数,只是纯正则表达式。负类中的这部分“\\s”是一个空格、一个转义字符和一个“s”。“s”被覆盖在非a-z中。正则表达式保留空格和转义字符。离开转义字符而不删除它们转义的内容可能会有很大的问题;这就是我要找的,因为我想在客户端和服务器上使用相同的正则表达式进行输入验证。为什么推荐多个.replace()调用?@frenchie不客气:)我会使用多个
replace
方法,因为在我看来这更容易理解