用javascript替换字符串的第二部分并替换()

时间:2011-01-07 12:00:06

标签: regex javascript-events

我需要替换任何出现的整数序列,后跟一个破折号,然后是另一个整数序列,只有第一个整数序列,例如:

THIS IS A STRING   2387263-1111  STRING CONTINUES

将成为:

THIS IS A STRING   2387263  STRING CONTINUES

我可以使用Javascript和replace()吗?

谢谢, 吉迪

4 个答案:

答案 0 :(得分:2)

新答案 -

是的,根据我的情况,首先你需要使用正则表达式匹配整个字符串“2387263-1111”然后删除该部分后跟' - '然后替换原始字符串中的结果。

检查 codaddict 的答案。我的答案几乎一样,但他的回答似乎更合适。

老答案: -

为什么要更换?只需使用拆分并获得第一个值。

var str = "2387263-1111";
var output = str.split("-")[0];

答案 1 :(得分:2)

你可以这样做:

str = str.replace(/(\d+)-\d+/,'$1');

See it

它取代了一组数字,后跟一个连字符,后跟一组带有第一组数字的数字。

如果要替换此类模式的多次出现,请使用g修饰符:

str = str.replace(/(\d+)-\d+/g,'$1');

答案 2 :(得分:1)

javascript的用户RegExp功能

str = str.replace(new RegExp("-[0-9]+"), " ");

答案 3 :(得分:1)

不是新的答案,只是 codaddict 的补充。不知道JScript的正则表达式 好吧,但我认为它使用扩展的正则表达式(如果没有,请忘记这一点)。

如果您需要在边界条件下进行验证,您可以执行以下操作:
str = str.replace( /((^|\s)\d+)-\d+(?=\s|$)/g, '$1' );

这会阻止匹配此类事物:
A STRING 2387263-1111STRING CONTINUES
A STRING2387263-1111 STRING CONTINUES
A STRING2387263-1111STRING CONTINUES