相关疑难解决方法(0)

在JavaScript RegExp中复制Java的"Pattern.quote"的功能

在Java中,您可能会尝试stackoverflow.com使用与URL匹配的正则表达式Pattern.compile("stackoverflow.com").但这是错误的,因为它.在正则表达式中具有特殊含义.解决这个问题的最简单的方法是写Pattern.compile(Pattern.quote("stackoverflow.com"))哪个就出来:Pattern.compile("\\Qstackoverflow.com\\E")其中"引号"的整个字符串.

我想在JavaScript中做同样的事情,但JavaScript的正则表达式并没有赋予任何含义\Q,\E并且它看起来不像是等效的JavaScript,所以我不知道如何去做.我的第一个想法(请参阅下面的答案)是在JavaScript正则表达式中具有特殊含义的任何字符之前加上反斜杠,但这似乎容易出错,我怀疑有人可能知道更好的方法.

这是针对Firefox扩展,因此Mozilla特定的解决方案是可以的.

javascript java regex string firefox-addon

8
推荐指数
1
解决办法
1879
查看次数

在jscript regexp字符类中逃避正斜杠?

我有一个正则表达式测试数字(0-9)和/或正斜杠(/).它看起来像这样:

/^[0-9/]+$/i.test(value)
Run Code Online (Sandbox Code Playgroud)

现在我认为这是正确的,但eclipse javascript验证器不同意:

令牌"]"上的语法错误,删除此令牌

我想这是因为分隔符/分隔符是/和eclipse'认为'正则表达式完成(因此一个]意外).

我们可以通过逃避/这样来满足日食:

/^[0-9\/]+$/i.test(value)
Run Code Online (Sandbox Code Playgroud)

请注意,这两个版本都适合我.

我的问题是:

  • 据我知道,我不是需要专门逃脱斜线在这个范围内.它可能是特定情况的(例如,对于javascript,它是使用的分隔符).
  • 虽然它们似乎都在工作,但我宁愿使用'正确'版本,因为在不同环境中的行为,以及......因为正确和所有:)

有谁知道我应该做什么?逃避与否?我没有发现任何声誉良好的网站告诉我逃避/范围,但Eclipse验证器可能不是完全愚蠢的...

javascript regex eclipse escaping

7
推荐指数
1
解决办法
8400
查看次数

使用单词边界将变量传递给RegExp

我必须传递给变量的RegExp值并指向一个单词边界.如果它包含变量值,我有一个要检查的字符串.我不知道如何将regexp作为变量值和单词边界属性传递给我.

所以像这样:

var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法来解决问题,但仍然不能这样做:(

javascript regex

7
推荐指数
2
解决办法
1156
查看次数

javascript正则表达式,单词未被跟随,并且没有特定的字符串

我想我不是很擅长正则表达式,所以这是我的问题(我确定它很容易解决,但不知何故我似乎无法找到)

var word = "aaa";
text = text.replace( new RegExp(word, "g"),
                     "<span style='background-color: yellow'>"+word+"</span>");
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都有效.

我想要做的是正则表达式只能在单词后面没有char /并且前面没有char ".

javascript regex

6
推荐指数
1
解决办法
8908
查看次数

ES6:使用案例说明术语过滤数据

这是我data按标题值过滤的方法:

data.filter(x => x.title.includes(term))
Run Code Online (Sandbox Code Playgroud)

所以数据就像

Sample one
Sample Two
Bla two
Run Code Online (Sandbox Code Playgroud)

将被"减少"为

Bla two
Run Code Online (Sandbox Code Playgroud)

如果我过滤了two.

但我需要得到过滤结果

Sample Two
Bla two
Run Code Online (Sandbox Code Playgroud)

javascript filter case-insensitive ecmascript-6

6
推荐指数
1
解决办法
3766
查看次数

角管替换字符

我用 Angular 写了一个管道,|用,.

export class AppComponent  {
  name = 'Name|with|pipes';
}
Run Code Online (Sandbox Code Playgroud)

所需的输出是Name,with,pipes,但我认为它是,N,a,m,e,|,w,i,t,h,|,p,i,p,e,s,

这是管道的代码:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({name: 'replace'})
export class ReplacePipe implements PipeTransform {
  transform(value: string, strToReplace: string, replacementStr: string): string {

    if(!value || ! strToReplace || ! replacementStr)
    {
      return value;
    }

 return value.replace(new RegExp(strToReplace, 'g'), replacementStr);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是StackBlitz上的代码。我怎样才能解决这个问题?

angular

6
推荐指数
2
解决办法
1万
查看次数

全局替换为js

我有以下字符串:

[27564][85938][457438][273][48232]
Run Code Online (Sandbox Code Playgroud)

我想替换所有[与''.我尝试了以下但它不起作用:

 var str = '[27564][85938][457438][273][48232]'
 var nChar = '[';
 var re = new RegExp(nChar, 'g')    
 var visList = str.replace(re,'');
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

提前谢谢了.

javascript

5
推荐指数
1
解决办法
228
查看次数

转义正则表达式中的变量

我试图获取输入文本字段的值,并在正则表达式中使用它.这是我必须匹配一行的开头.

regex = new RegExp('^' + inputValue, 'i')
Run Code Online (Sandbox Code Playgroud)

它对于以字母数字字符开头的常规字符串工作正常,但我也使用它来获取金额.当输入字段以'$'(美元符号)开头时,我会得到不同的结果.

如何将上面的变量转义为一个简单的字符串?我试过这个,但没有运气:

regex = new RegExp('^[' + inputValue + ']', 'i')
Run Code Online (Sandbox Code Playgroud)

javascript regex

5
推荐指数
1
解决办法
698
查看次数

什么是java.util.regex.Pattern.quote(String arg)的GWT替换

在我的应用程序中,我需要以下代码:

string1.replaceAll(string2, myConstatntString)

问题是,string1并且string2可以包含特殊符号'('.

我想引用string2使用 java.util.regex.Pattern.quote(String arg):

string1.replaceAll(Pattern.quote(string2), myConstatntString);

但java.util.regex.Pattern在GWT客户端不可用.GWT有没有替代品Pattern.quote?

java regex gwt

5
推荐指数
1
解决办法
1547
查看次数

用于保留案例模式,大写的正则表达式

是否有一个正则表达式来保留案例模式\U和\L?

在下面的示例中,我想转换"date"为"month"同时保持使用的大小写input

   from        to
  "date" ~~> "month"
  "Date" ~~> "Month"
  "DATE" ~~> "MONTH"
Run Code Online (Sandbox Code Playgroud)

我目前使用三个嵌套调用sub来完成此任务.

input <- c("date", "Date", "DATE")
expected.out <- c("month", "Month", "MONTH")

sub("date", "month", 
  sub("Date", "Month", 
    sub("DATE", "MONTH", input)
  )
)
Run Code Online (Sandbox Code Playgroud)

我们的目标是有一个单一的pattern和一个replace如

gsub("(date)", "\\Umonth", input, perl=TRUE) 
Run Code Online (Sandbox Code Playgroud)

这将产生所需的输出

regex r

5
推荐指数
5
解决办法
213
查看次数