我在jsFiddle中有这个正则表达式,效果很好(带有一些标点符号的字母数字)但我想删除前导空格,同时仍允许其他地方使用空格。我需要改变什么?
var TheCleanString = TheInput.replace(/[^a-zA-Z0-9 \\s\(\)\.\-]+/g, '');
答案 0 :(得分:1)
如果你想用单一的RegExp来做,这是我的建议:
TheInput.replace(/(^\s+|[^a-zA-Z0-9 \\s\(\)\.\-]+)/g, '');
<强> Demo on jsFiddle 强>
但如果我是你,我会使用多种replace
方法,因为它更容易理解代码:
TheInput.replace(/[^a-zA-Z0-9 \\s\(\)\.\-]+/g, '').replace(/^\s+/, '');
答案 1 :(得分:0)
搜索^ [\ t] +并删除任何内容以删除前导空格(空格和制表符)
扯掉:http://www.regular-expressions.info/examples.html
-
另一种选择是使用trim()
答案 2 :(得分:0)
您应该使用^
来标记字符串的开头。
你可以使用这样的东西。用$ 1替换它将为您提供不带前导空格的字符串。
^[ ]+(.*)
答案 3 :(得分:0)
查找:
# /(?:^\s+|[^a-zA-Z0-9\s().-]+)/
(?: ^ \s+ | [^a-zA-Z0-9\s().-]+ )
替换:
&#39;&#39;