我正在尝试将一个函数附加到表单字段,以便 - 最好在用户输入字段时 - 我指定的特殊字符将从键入的文本中删除。但是有一些条件:
我发现了几个如何在事后从字符串中替换特殊字符或非字符字符的例子,但到目前为止还没有关于如何删除我不想要的字符,或者如何仅删除空格的例子当它是一个尾随空间。
请注意,我没有与JavaScript和jQuery结合(反之亦然),但它需要是一个或另一个。我也没有嫁给它在飞行中这样做,但这是更好的选择 - 下一个字段已经出现了一些其他功能,所以在用户选中此特定文本框之前,我宁愿拥有正确的值。 / p>
我试图使用多个替换,如下面的示例,但它似乎不喜欢替换任何字符(“”)。我也不确定如何为尾随空格写条件。
var s1 = "I live on Hopper St.";
var s2 = s1.replace(/\./g, "");
这主要是为了自动纠正我们看到的三个主要问题:
这些值在漫长的业务流程中使用,将值传递给其他字段,创建文件夹等等。所以诸如句点,双空格和尾随空格之类的东西都会在以后的工作中搞砸。我试图通过在第一场杀死他们来解决这些问题。
答案 0 :(得分:1)
使用您提供的示例严格回答您的问题:
var s2 = s1.replace(/\s{2,}|\.|\s$/g, "");
这将删除两个或多个空格,任何点和任何尾随空格的任何序列。模式表达式的三个部分由|
(OR
)分隔,因此可以避免多次调用remove
。您还可以^\s
。
然而,这种方法存在风险,因为:
因此,请为用户进行正确的客户端验证,并为您进行适当的服务器端验证。