我需要更换的整数,随后由短划线的序列中的任何发生和整数然后另一序列,只有整数的第一序列,例如:更换串的所述第二部分与JavaScript和替换()
THIS IS A STRING 2387263-1111 STRING CONTINUES
将变为:
THIS IS A STRING 2387263 STRING CONTINUES
我可以使用JavaScript和替换()?
感谢, 吉迪
我需要更换的整数,随后由短划线的序列中的任何发生和整数然后另一序列,只有整数的第一序列,例如:更换串的所述第二部分与JavaScript和替换()
THIS IS A STRING 2387263-1111 STRING CONTINUES
将变为:
THIS IS A STRING 2387263 STRING CONTINUES
我可以使用JavaScript和替换()?
感谢, 吉迪
你可以这样做:
str = str.replace(/(\d+)-\d+/,'$1');
它取代一组数字后跟一个连字符,然后一组与第一组数字位数。
如果您要更换这种模式的多次出现只使用g
修改为:JavaScript代码
str = str.replace(/(\d+)-\d+/g,'$1');
新的答案 -
是的,据我你的情况,你首先需要的是整个字符串“2387263-1111”匹配使用正则表达式,然后删除该部分跟随按' - ',然后替换原始字符串中的结果。
查看的答案codaddict。我的几乎一样,但他的答案似乎更合适。
OLD答案: -
为什么更换?只需使用分割并获得第一个值。
var str = "2387263-1111";
var output = str.split("-")[0];
用户RegExp功能
str = str.replace(new RegExp("-[0-9]+"), " ");
不是一个真正的新的答案,只是除了codaddict。不知道JScript的正则表达式
一切都好,但我认为它使用扩展的正则表达式(如果没有,忘记这一点)。
如果您需要boundry条件验证,你可以做这样的事情:
str = str.replace(/((^|\s)\d+)-\d+(?=\s|$)/g, '$1');
这将防止匹配这种类型的事情:
A STRING 2387263-1111STRING CONTINUES
A STRING2387263-1111 STRING CONTINUES
A STRING2387263-1111STRING CONTINUES
因为这是一个子串,它不是整个字符串。我需要查找那部分 – gidi 2011-01-07 12:02:52
@gidi - 在任何情况下,您将获得该子字符串,然后解析以获得“ - ”之前的第一个值?如果不是,那么您可以给出确切的用例并更新你的问题? – 2011-01-07 12:05:12
对不起,我还不够清楚。我使用字符串编辑了问题,确切的用例。问题是我不知道如何获得所需的子字符串。 – gidi 2011-01-07 12:07:02