相关疑难解决方法(0)

在正则表达式字符括号中包含连字符?

$.validator.addMethod('AZ09_', function (value) { 
    return /^[a-zA-Z0-9.-_]+$/.test(value); 
}, 'Only letters, numbers, and _-. are allowed');
Run Code Online (Sandbox Code Playgroud)

当我使用某些东西test-123时仍然触发,就像连字符无效一样.我试着\---

javascript regex testing validation jquery

55
推荐指数
2
解决办法
8万
查看次数

为什么java中的String.replaceAll()需要在正则表达式中使用4个斜杠"\\\\"来实际替换"\"?

我最近注意到,当涉及转义字符"\"(斜杠)时,String.replaceAll(正则表达式,替换)表现得非常奇怪.

例如,考虑有一个与文件路径字符串- String text = "E:\\dummypath" 我们要替换的"\\""/".

text.replace("\\","/")给出输出"E:/dummypath",然后text.replaceAll("\\","/")引发异常java.util.regex.PatternSyntaxException.

如果我们想要实现相同的功能,replaceAll()我们需要将其编写为, text.replaceAll("\\\\","/")

一个值得注意的区别是replaceAll()它的参数是reg-ex而replace()有参数字符序列!

text.replaceAll("\n","/")其作用与其char序列完全相同text.replace("\n","/")

深入挖掘: 当我们尝试其他一些输入时,可以观察到更奇怪的行为.

让我们分配 text="Hello\nWorld\n"

现在 text.replaceAll("\n","/"),text.replaceAll("\\n","/"),text.replaceAll("\\\n","/")这三个提供同样的输出Hello/World/

Java以我认为最好的方式搞砸了reg-ex!没有其他语言似乎在reg-ex中具有这些有趣的行为.任何特定的原因,为什么Java搞砸了这样?

java regex string escaping charsequence

27
推荐指数
3
解决办法
4万
查看次数

Javascript RegEx不起作用

我有以下javascript代码:

    function checkLegalYear() {
        var val = "02/2010"; 

        if (val != '') {
           var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

            if (regEx.test(val)) {
               //do something
            }
            else {
               //do something
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,对于我传递的任何值,我的regEx测试总是返回false(02/2010).我的代码中有什么问题吗?我已经在网上的各种javascript编辑器上尝试了这个代码,它运行正常.

javascript regex

20
推荐指数
1
解决办法
3万
查看次数

Angular 2反应形式验证数字的模式,带有两个小数位

我正在尝试验证角度2反应形式的输入,以便只有两位小数的数字才有效.

我正在使用该Validators.pattern('^\d+\.\d{2}$')方法来匹配正则表达式模式.根据https://regex101.com/r/1DbMZq/1我的正则表达式匹配正确,但当我在我的表单中使用它时,它总是无效的.

这是一个说明问题的plunker:https://plnkr.co/edit/TpBZtgNNww4CnTwQFtef?p = preview

我有什么想法我做错了吗?

regex validation angular2-forms angular

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

新的Regexp不起作用

我正在尝试将以下表达式转换为"new Regexp()"样式:

http://jsfiddle.net/HDWBZ/

var Wyrazenie = /\btest[a-z]*/g;
Run Code Online (Sandbox Code Playgroud)

我真的很困惑,不知道如何解决它.以下是我所做的,但显然它不起作用.

var Wyraznie = new RegExp("\btest[a-z]*","g");
Run Code Online (Sandbox Code Playgroud)

还有一个问题,如果不是"测试"我会使用变量怎么样?

javascript regex

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

javascript未终止的字符类

var badCode = "\(INST1,\\[0,";
var regex = new RegExp(badCode, "igm");
Run Code Online (Sandbox Code Playgroud)

得到"未终止的字符类"错误.

怎么修?

TIA

尝试从响应者那里得到的建议,请看下面的屏幕打印(您可能需要右键单击图像并在新选项卡中打开以使其清晰):记下new_bad_thing的值(上面等于badCode)

当我点击运行按钮时,这是屏幕打印(请注意错误信息):

在此输入图像描述

javascript regex

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

除[Value]之外的正则表达式

我有一个字符串,并希望将其替换为mssqlFunctions对象中给出的其他字符串.

var mssqlFunctions = {
                DateDiff: "DATEDIFF",
                Abs: "ABS",
                y: 'year',
                m: 'minute'
            };
Run Code Online (Sandbox Code Playgroud)

我的字符串是:DateDiff(m,Abs(23)[Emy()])

这是我替换String的代码

var regularExpression = new RegExp(Object.keys(mssqlFunctions).join("|"),"gi");

formula = formula.replace(regularExpression, function(matched){
  return mssqlFunctions[matched];
});
Run Code Online (Sandbox Code Playgroud)

因此它将输出作为DATEDIFF(分钟,ABS(23)[Eminuteyear()])

但我不想替换[]中的字符串

所以我想要的输出是

DATEDIFF(分钟,ABS(23)[Emy()])

javascript regex

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

JavaScript RegExp:为什么会导致双反斜杠 ( \\ ) 错误?

偶然发现的,不知道是什么原因。

// Results in "Syntax error in regular Expression".
var re = RegExp('\\');
Run Code Online (Sandbox Code Playgroud)

我知道构造函数需要一个字符串作为参数。并且在字符串中使用反斜杠来转义具有特殊含义的字符。我知道我必须将 \d 之类的字符转义为 \\d 。

因此:正确的反斜杠应该被解释为一些普通字符。

相反,它会抛出错误。为什么?

谁能向我解释一下吗?

javascript regex

4
推荐指数
1
解决办法
4965
查看次数

Javascript正则表达式对象和美元符号

在下面的代码中.我期待的是真的,但我却变得虚假了.我错过了什么?

var text = "Sentence $confirmationlink$ fooo";     
alert(placeHolderExists(text,'confirmationlink'); // alerts false
function placeHolderExists(text,placeholdername) {  
  var pattern = new    RegExp('\$'+placeholdername+'\$');    
  return pattern.test(text);
}
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

如何正确使用RegExp

我正在尝试用JavaScript替换'$$$'.就那么简单.

我有以下代码:

var splitSign = '$$$';
var string = 'hello$$$how$$$are$$$you';
var regex = new RegExp(splitSign,'g');
var res = string.replace(regex,' ');
console.info(res);
Run Code Online (Sandbox Code Playgroud)

结果是字符串没有被修改!任何想法为什么?

javascript regex

3
推荐指数
1
解决办法
71
查看次数