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
方法,因为在我看来这更容易理解