在Javascript中从字符串中删除特定字符

61

我正在创建一个表单,用于查找我们呼叫记录系统中支持请求的详细信息。

呼叫参考号被分配了一个类似于 F0123456 的数字,这就是用户输入的内容,但数据库中的记录却是 123456。我有以下代码来收集提交表单之前使用 jQuery ajax 提交的数据。

如果存在,我应该如何从字符串中删除前导的 F0

$('#submit').click(function () {        
            
var rnum = $('input[name=rnum]');
var uname = $('input[name=uname]');

var url = 'rnum=' + rnum.val() + '&uname=' + uname.val();

如果始终是前两个字符,则使用 substr。否则,您需要更好地指定问题。 - Jon
6个回答

89

直接将其替换为空即可:

var string = 'F0123456'; // just an example
string.replace(/^F0+/i, ''); '123456'

3
将“+”符号包含在内可能会有点误导。另外,由于这是“第一次出现”,我倾向于使用非正则表达式替换(但这并不重要),或者使用substr函数。 - musefan
@AlphaPapa 我不知道你希望它是大小写不敏感的。答案已经添加,并加上了 i 标志。@musefan,我不知道 OP 是想省略只有第一个前导零还是所有前导零。 - Mathias Bynens
@MathiasBynens:我认为你应该对“+”发表评论。如果情况编号恰好是000001,可能会导致错误,使OP无法解决。当然,这完全取决于系统的具体实现。 - musefan

30

说实话,我认为这可能是最简明扼要且最不令人困惑的表述了,但也许这只是我的看法:

str = "F0123456";
str.replace("f0", "");

不要使用正则表达式方法,直接进行替换。

14
如果您想从给定的字符串中删除所有出现的F0,您可以使用replaceAll()方法。

const str = 'F0123F0456F0'.replaceAll('F0', '');
console.log(str);


9
另一种方法是:
rnum = rnum.split("F0").pop()

它将字符串分成两部分:["", "123456"],然后选择最后一个元素。


8

正则表达式解决方案:

ref = ref.replace(/^F0/, "");

简单解决方案:
if (ref.substr(0, 2) == "F0")
     ref = ref.substr(2);

3
如果您不想删除字符串中前两个字符且想从整个字符串中删除 F0,则需要使用此正则表达式。

   let string = 'F0123F0456F0';
   let result = string.replace(/F0/ig, '');
   console.log(result);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接