我需要替换任何出现的整数序列,后跟一个破折号,然后是另一个整数序列,只有第一个整数序列,例如:
THIS IS A STRING 2387263-1111 STRING CONTINUES
将成为:
THIS IS A STRING 2387263 STRING CONTINUES
我可以使用Javascript和replace()吗?
谢谢, 吉迪
答案 0 :(得分:2)
新答案 -
是的,根据我的情况,首先你需要使用正则表达式匹配整个字符串“2387263-1111”然后删除该部分后跟' - '然后替换原始字符串中的结果。
检查 codaddict 的答案。我的答案几乎一样,但他的回答似乎更合适。
老答案: -
为什么要更换?只需使用拆分并获得第一个值。
var str = "2387263-1111";
var output = str.split("-")[0];
答案 1 :(得分:2)
你可以这样做:
str = str.replace(/(\d+)-\d+/,'$1');
它取代了一组数字,后跟一个连字符,后跟一组带有第一组数字的数字。
如果要替换此类模式的多次出现,请使用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