在javascript中检查模式

时间:2013-05-23 06:53:23

标签: javascript regex validation

我有下一个模式: [a-z [A-Z]а-я[А-Я] [0-9]ЇЇЇІєЄ[ - ] [,] _“/ \] {0,483}

<input
 id="<?= $field['id'];?>"
 name="input"                       
 <?php if (isset($field['regex'])) echo "pattern=".$field['regex'];?>
>

通过这种模式,我通过javascript检查字段中的数据:

var decode_pattern = $(this).attr('pattern');
var reg = RegExp("^" + decode_pattern + "$");

但是当我尝试在字段中输入(sdfzsdf)时,regexp告诉我 - 错误。

为什么?

1 个答案:

答案 0 :(得分:1)

  

我有这种模式:[a-z[A-Z]а-я[А-Я][0-9]їЇіІєЄ[-][,]_"/\ ]{0,483}

JavaScript Regex语法不允许在字符类中使用字符类。也许你的意思是

[a-zA-Zа-яА-Я0-9їЇіІєЄ,_"/\\ -]{0,483}

您当前的正则表达式相当于/[a-z\[A-Z]а-я[А-Я]\dїЇіІєЄ-,_"\/ \]{0,483}/

此外,由于它包含引号,您需要html转义属性值:

echo 'pattern="'.htmlspecialchars($field['regex']).'"';