Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合reg表达式和字符串的Javascript_Javascript - Fatal编程技术网

结合reg表达式和字符串的Javascript

结合reg表达式和字符串的Javascript,javascript,Javascript,我有一个字符串,它包含一个不可变的部分,一个可变的数字和另一个不可变的部分。我想使用userreplace(),只将变量部分更改为用户选择的值。 我是javascript的noob,甚至是reg表达式中更大的noob,如果这是一件琐碎的事情,那么很抱歉 无论如何,我有一个字符串如下: "first nonvar part: "+any_integer+"last nonvar part". 我想用regexp替换任何_整数 我是否可以将字符串和正则表达式匹配结合起来,通过字符串的非可变部分(中

我有一个字符串,它包含一个不可变的部分,一个可变的数字和另一个不可变的部分。我想使用user
replace()
,只将变量部分更改为用户选择的值。 我是javascript的noob,甚至是reg表达式中更大的noob,如果这是一件琐碎的事情,那么很抱歉

无论如何,我有一个字符串如下:

"first nonvar part: "+any_integer+"last nonvar part".
我想用regexp替换任何_整数

我是否可以将字符串和正则表达式匹配结合起来,通过字符串的非可变部分(中间有一个未知的数字)来匹配字符串

因此,我可以使用:

replace("first nonvar part: "+any_number+"last nonvar part","first nonvar part: "+user_input+"last nonvar part")
或者类似的东西

非常感谢

var str = original.replace(/(non var)\d(non var)/​​​​​​​​​​​​​​​​​​​​​, "$1" + input + "$2");
用非变量替换“非变量”


用非变量替换“非变量”

如果字符串的非可变部分不包含数字,则可以在表达式中指定数字:

str = str.replace(/\d+/, replacement);
如果要通过连接字符串创建正则表达式,请使用Regexp构造函数:

var first = "first nonvar part: ";
var last = "last nonvar part";
var re = new Regexp("^" + first + "\\d+" + last + "$");
str = str.replace(re, replacement);

请注意,如果非变量字符串包含在正则表达式中具有特殊含义的任何字符,则需要对其进行转义。

如果字符串的非变量部分不包含数字,则可以在表达式中指定数字:

str = str.replace(/\d+/, replacement);
如果要通过连接字符串创建正则表达式,请使用Regexp构造函数:

var first = "first nonvar part: ";
var last = "last nonvar part";
var re = new Regexp("^" + first + "\\d+" + last + "$");
str = str.replace(re, replacement);

请注意,如果非变量字符串包含任何在正则表达式中具有特殊含义的字符,则需要对其进行转义。

在应为
“\\d+”
的字符串中。JavaScript通常会忽略未定义的转义,因此在字符串中保留
d+
。该字符串应为
“\\d+”
。JavaScript通常会忽略未定义的转义,因此只剩下
d+
。您能给出一个字符串的真实示例以及要替换和插入的值吗?如果代码看起来像您所展示的,那么答案是
“first nonvar part:”+user\u input+“last nonvar part”
,这是不可能的。@Kobi:是的,乍一看,“nonvar1”+userinput+“nonvar2”看起来像一个解决方案,但我有一个问题,我必须通过将它们保存为字符串来访问html的各个部分,一旦做了更改,我就必须更新所有的字符串。你能给出一个真正的字符串示例以及你想要替换和插入的值吗?如果代码看起来像您所展示的,那么答案是
“first nonvar part:”+user\u input+“last nonvar part”
,这是不可能的。@Kobi:是的,乍一看,“nonvar1”+userinput+“nonvar2”看起来像一个解决方案,但我有一个问题,我必须通过将它们保存为字符串来访问html的各个部分,一旦做了更改,我必须更新所有的文件。