【问题标题】:jquery remove everything after and including certain characterjquery 删除之后的所有内容,包括某些字符
【发布时间】:2011-07-29 23:04:27
【问题描述】:

我有一个位置 - Pearl River, NY (10965),我想显示为 Pearl River, NY(所以它必须删除 (10965) - 包括 ( 之前的空格 - 我不想大肆宣传并在服务器端做任何事情。jQuery 可以正常工作。我知道这可能很简单,我只是不太使用 JS。

谢谢!

【问题讨论】:

标签: javascript jquery


【解决方案1】:
location_string = location_string.replace(/ \([^)]*\)/, '');

顺便说一句,请不要再认为任何事情都需要 jQuery,尤其是像这样的字符串操作任务。确实不是,而且 jQuery 被夸大了。

【讨论】:

  • +1 表示不需要使用 jQuery。 -1 表示 jQuery 被夸大了。
  • 我相信是的。对于大多数应用程序来说它是完全没有必要的,而且它被过度使用了。
  • 我注意到+ 会留在空括号() 中。不过,这很可能是可以接受的。
  • 据我的测试显示,它不会留下空括号。在浏览器控制台中运行:'Pearl River, NY (10965)'.replace(/ \([^)]+\)/, '');
  • Delan:我认为@James 是在谈论'Pearl River, NY ()'.replace(/ \([^)]+\)/, ''); === "Pearl River, NY ()" 而不是'Pearl River, NY ()'.replace(/ \([^)]+\)/, ''); === "Pearl River, NY"
【解决方案2】:

我不确定您是如何获得“Peal River NY...”(变量?innerHTML?),但您需要使用正则表达式来匹配(numbers),并使用replace 方法来匹配将匹配替换为空""

"Peal River, NY (10965)".replace(/ \([0-9]+\)/, "");

这不使用jQuery!

参见String.replace 方法。

正如@James 在 cmets 中所提到的,这个 sn-p 将把 "Peal River, NY ()" 保留为 "Peal River, NY ()",而不是删除括号。如果这是您需要考虑的情况,请将+ 更改为*

"Peal River, NY (10965)".replace(/ \([0-9]*\)/, "");

【讨论】:

  • 我注意到+ 会留在空括号() 中。不过,这很可能是可以接受的。
【解决方案3】:

使用正则表达式:

var s = "Pearl River, NY (10965)";
alert(s.replace(/ \([\d]*\)/,''));

查看this JSFiddle

当然,在这里我假设您只想替换括号中的数字。对于字母和下划线,使用\w 代替\d

您可能还希望要求该项目出现在最后。在这种情况下,以下内容就足够了:

alert(s.replace(/ \([\d]*\)$/,''));

你会注意到以上都没有引用 jQuery。这是可以通过纯 JavaScript 实现的。

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2011-08-03
    • 2013-05-01
    • 2019-04-25
    相关资源
    最近更新 更多