据记载,可以使用2种方法创建regex表达式:
1.简单表达
/ab+c/i;
2.使用构造函数
new RegExp(/ab+c/, 'i');
new RegExp('ab+c', 'i');
我使用了RegExp(/ab+c/,'i')版本,该版本在Chrome、Mozilla中传递,但没有在Safari中传递,返回一个错误:
cannot supply flags when constructing one regexp from another
我已经转向了第一种方法,它现在起作用了,但是有两件事我不清楚:
我想验证用户输入。用户只能输入四位数字。我使用RegExp来检查和查看奇怪的工作。Javascript无法理解\d
var expr1 = new RegExp("^\s*[0-9]{4,4}\s*");
var year = "1984";
alert (expr1.test(year));
var expr2 = new RegExp("^\s*\d{4,4}\s*");
alert (expr2.test(year));
它会提示"true“和"false”。
为什么?
我在javascript中读到了Douglas的好部分,javascript正则表达式文本共享相同的对象。如果是这样,那么为什么这两个regex文本在lastIndex属性中有所不同?
var a = /a/g;
var b = /a/g;
a.lastIndex = 3;
document.write(b.lastIndex);
0是输出,而不是3。
我有一个关于从字符串创建正则表达式的问题。代码是用javascript编写的,基本上一个变量得到一个字符串。我不确定如何将字符串转换为正则表达式。以下是代码
var string = "the code";
var regex = /(the |code )/g;
如何使用javascript将字符串转换为正则表达式?
我正在学习javascript,这对我来说是没有意义的。如果某个字符匹配,test()将返回true或false。那么,谁能解释一下为什么我下面的代码不起作用呢?
var str = "hello*3";
var arr = str.split('');
for(var i in arr){
re = new RegExp("/[a-z]/i");
if(re.test(arr[i])) {
console.log(String.fromCharCode(arr[i].charCodeAt() + 1));
我试图在javascript中将字符串转换为类型化数组(特别是Uint8Array)。我试图将字符串字符的ASCII值存储为单独的数组元素。
var myString = 'foo bar baz " >';
var arr = new Uint8Array(myString);
console.log(arr.length); // Why is this 0?
为什么我创建的数组的长度是0?
在简单的javascript中:当我运行下面的代码时,我得到了错误:
var arg_regex = 'myregex:/^[:a-z0-9\s!\\\/]+$/i';
regex_patt = arg_regex.replace(/^myregex:/,'');
if(regex_patt.test(stringtocheck)){
//good
} else {
//bad
}
错误:
regex_patt.test is not a function
请帮助我。不能弄清楚为什么它会失败。
在用regexplib.com引擎测试它时,我有一个在.NET上工作的正则表达式。它找不到与JavaScript匹配的。我还用下面的代码尝试了JSFiddle。它找不到匹配的。它返回null。
var re = RegExp('^\d+(?:\.\d{0,1})?$');
var myString = "123";
alert(myString.match(re));
我试图在aspx网页中使用下面的javascript。它找不到匹配的。我愿意接受各种想法。
function ValidateData(ControlObj, ColumnType) {
var
我正在将CSV文件转换为本地2D数组。我想知道是否有更好的方法将字符串转换为浮点数/整数,而不是使用正则表达式后跟parseFloat() / parseInt。
想法/建议?
// numex() - checkes to see if the string (str) is a number
// returns number.valid (true||false) and number.value = (float||int||string)
numex = function(str){
number = {};
number.valid = false;
number.va
我正尝试在javascript中使用常规表达式,但它不起作用。我的自定义控件包含名为regex的属性,该属性由用户提供,我需要根据此正则表达式验证输入值。由于JS中的属性将包含在双引号(“”)中,因此regualr表达式将失败(case -1)。情况2成功了,尽管两个情况的regualr表达式是相同的,唯一的区别是情况1,它是双引号。谁能告诉我为什么它不工作。RegexExp="/^\d{5}$/"-在我的aspx页面
var value = "11111";
if(value.toString().search($(element).attr(
我试图理解为什么将regex写成字符串不起作用,但使用它时不使用string确实有效。
这就是我的例子:
var patt = new RegExp("/test_.*/gi");
var res = patt.test("test_4");
console.log(res);
将返回假
但这一点:
var patt = /test_.*/gi;
var res = patt.test("test_4");
console.log(res);
将返回真
有什么不同?
这里我有一个Javascript函数,当被调用时,它在ASP表单中查找三个特定的字段,并检查每个字段是否正确填写。我的意图是在一个单独的asp提交按钮发送表单之前,编写更多的代码来处理数据,但我不认为asp的东西与问题相关。
function generateRef() {
var recieptno = document.getElementById("test_txt_Recno").value;
var dop = document.getElementById("test_txt_Date").value;
var branchno = do
我正在尝试在Javascript中验证一个包含9位数字的变量。这应该是基本的,但由于某些原因,这是失败的:
var test = "123123123";
var pattern = new RegExp("/\d{9}/");
if(test.match(pattern))
{
//This code never executes
}
else
{
//This code is always executing
alert('no match!
我有以下带有一个参数的javascript函数
<script type="text/javascript">
function highlight(text) {
var inputText = document.getElementById("inputText");
var innerHTML = inputText.innerHTML;
var index = innerHTML.indexOf(text);
if (index >= 0) {
innerHTML = innerHTML.replace(/YYY
我有一个小的javascript函数:
function GetFilteredListLimited(event) {
var $source = $(event.target);
var $Pattern = event.data.Pattern;
var RE = new RegExp($Pattern, 'i');
if (RE.test($source.val())) {
console.log('RegEx match');
}
};
所使用的模式是:
^[A-Z0-9._%+-]+@[A-Z0
我正在尝试匹配javascript中的模式。
以下是例子:
var pattern = "/^[a-z0-9]+$/i"; // This is should accept on alpha numeric characters.
var reg = new RegExp(pattern);
console.log("Should return false : "+reg.test("This $hould return false"));
console.log("Should return true : "+reg.test(
我正试着匹配这个网址:
随机用户和结束id正在改变的地方。
我想验证url确实是一个play.spotify.com链接并匹配该格式。
我有一个javascript函数:
var verify = function(url){
var re = new RegExp("(https:\/\/play.spotify.com\/user\/\w+?\/playlist\/\w+)", "g");
var result = re.exec(url);
console.log(result);
}
verify("https://p
<input type="text" value="[tabelas][something][oas]" id="allInput">
<script type="text/javascript">
allInput = document.getElementById('allInput');
var nivel = new Array('tabelas', 'produto');
for (var i =0; i < nivel.length
我正在回答一个问题,下面返回false
var regexp = new RegExp("([\w\.-]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})");
var result = regexp.test( $("#email").val() ); // returns false
而
var regexp = /([\w\.-]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})/;
var result = regexp.test( $("#email").val() ); // returns true
那
var ck_login = new RegExp("/^[a-zA-Z]{5,12}$/");
var ck_password = new RegExp("/^(?=.*\d)(?=.*[a-z]).{6,16}$/");
function validate(){
var login = document.getElementById("login").value;
var loginErr = document.getElementById("login");
var password = document.getE
(new RegExp('/videos/(\d+)$')).test('/videos/1')返回false。为什么?
(new RegExp('/videos/(\d+)$')) == /\/videos\/(d+)$/
首先是/,然后是videos字符串,然后是/,然后是1位或更多位的d+,所以1应该匹配.