Javascript字符串replace()方法对句点和逗号出现故障
Javascript string replace() method malfunctioning for dots and commas
我想通过使用用户输入值来替换文本,但对于以下脚本,点和逗号在替换时出现故障。我尝试了(/'x/)
方法,但它不起作用,可能是因为它是一个值。那么,如何更准确地执行输出呢?
function myFunction() {
var str = document.getElementById("text").value;
var x = new RegExp(document.getElementById("x").value, "g");
var y = document.getElementById("y").value;
var txt = str.replace(x, y);
document.getElementById("newText").innerHTML = txt;
}
function reset() {
document.getElementById("text").value = "";
}
示例:
text = ..........a.a.a..a..a..aaaaaa..a.a.
x = ..a
y = B
output = ........B.BBBBBaaB.a.
但是输出应该是
........B.a.aBBBaaaaaB.a.
(很抱歉出现了不专业的例子…)
我现在正在学习JS,而不是专业人士,我正在尝试使用JS制作一个替换网页,就像在MS记事本中一样,在那里你可以按ctrl+H并替换任何单词或字母。
您正在寻找RegExp.escape
,这对您来说很不幸——JavaScript技术委员会的聪明人决定推迟将其纳入标准,因为您或其他人可能永远不会遇到这种边缘情况。
if(!RegExp.escape){
RegExp.escape = function(s){
return String(s).replace(/[''^$*+?.()|[']{}]/g, '''$&');
};
}
然后,您可以对一个值调用它,它将对其进行转义,以便在new RegExp
:中使用
var raw = document.getElementById("x").value;
var x = new RegExp(RegExp.escape(raw), "g");
您想要此正则表达式-[.]{2}[a]或[.][.][a].
必须有两个带尾随a的点。它应该有3个字符。
相关文章:
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- JavaScript从字符串中删除尾随空格和句点
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- javascript或css:如何隐藏后面跟着句点前缀的任何数字"1.文本”"2.文本“"
- 如何提取与前面带句点(.)的同一字符串匹配的字符串?(仅使用正则表达式)
- 如何在 javascript 中使用正则表达式提取句点 (.) 之后的字符串
- 什么'这个代码只允许数字和句点,这是错误的
- 基于jquery中id(其值中有句点)属性的访问值..
- Regex表示用句点分隔的3个3位数的值
- 如何用逗号和句点分隔JavaScript字符串
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 在节点快速路由中使用句点时获取 403
- SQL查询-替换字段名称中的句点
- 在访问对象属性时,括号表示法比句点表示法慢
- 电子邮件正则表达式不会验证句点后的部分
- 如何删除句点和前一个单词之间的空格
- 咕噜声:带有句点的位置 URL 应用
- 为什么句点不能在 Angular2 选择器中使用
- Javascript字符串replace()方法对句点和逗号出现故障