Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
Javascript 如何删除正则表达式开头和结尾的空白?_Javascript_Regex_Parsing_Replace - Fatal编程技术网

Javascript 如何删除正则表达式开头和结尾的空白?

Javascript 如何删除正则表达式开头和结尾的空白?,javascript,regex,parsing,replace,Javascript,Regex,Parsing,Replace,我为我的标记语言创建了一个javascript解析器。 我希望标签和内容之间没有空格,如下所示: __underline a sentence __and more. (or correctly : __underline a sentence__ and more.) 致: 但第一种情况的结果是: <u>underline a sentence </u>and more. 我的代码: var tabML = ['\'','*','_'], tabHTML

我为我的标记语言创建了一个javascript解析器。 我希望标签和内容之间没有空格,如下所示:

__underline a sentence __and more. 
(or correctly : __underline a sentence__ and more.)
致:

但第一种情况的结果是:

<u>underline a sentence </u>and more.
我的代码:

var tabML = ['\'','*','_'],
    tabHTML = ['em','strong','u']
    tag, char;
for(var i=0; i<tabML.length; i++){
    tag = tabHTML[i]; char = tabML[i];
    regex = new RegExp(char+char+'(.+)'+char+char, 'ig');
    txt = txt.replace(regex, '<'+tag+'>$1</'+tag+'>');
}

谢谢。

使用下面的正则表达式,然后用$1替换匹配的字符

试试这个。换成1美元。见演示


谢谢只需在两个下划线后添加\s*:\uuus*?\s*\uus\*
var tabML = ['\'','*','_'],
    tabHTML = ['em','strong','u']
    tag, char;
for(var i=0; i<tabML.length; i++){
    tag = tabHTML[i]; char = tabML[i];
    regex = new RegExp(char+char+'(.+)'+char+char, 'ig');
    txt = txt.replace(regex, '<'+tag+'>$1</'+tag+'>');
}
__\s*(.*?)\s*__\s*
> var s1 = "__underline a sentence __and more."
undefined
> var s2 = "__underline a sentence__ and more."
undefined
> s1.replace(/__\s*(.*?)\s*__\s*/g, '<u>$1</u> ')
'<u>underline a sentence</u> and more.'
> s2.replace(/__\s*(.*?)\s*__\s*/g, '<u>$1</u> ')
'<u>underline a sentence</u> and more.'
__(.*?)[ ]*__[ ]*
var re = /__(.*?)[ ]*__[ ]*/gm;
var str = '__underline a sentence __and more.\n__underline a sentence__ and more.';
var subst = '<u>$1</u> ';

var result = str.replace(re, subst);