使用String.prototype.replace删除非字母数字文本

时间:2018-10-08 16:56:34

标签: javascript regex

我正在尝试去除所有不是字母或数字的字符的字符串。我尝试使用正则表达式来extends layout block content h1= title body script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js') link(rel='stylesheet', href='/stylesheets/style.css') link(rel='stylesheet',href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css') script(src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js') nav .navbar.navbar-inverse .container-fluid .navbar-header a .navbar-brand(href='#') WebSiteName ul.nav.navbar-nav li.active a(href='#') Home li a(href='#') Issues li a(href='#') Page 2 li a(href='#') Page 3 ,但是它没有删除预期的字符:

String.prototype.replace

3 个答案:

答案 0 :(得分:2)

public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    //
    // This method is invoked when the application has loaded and is ready to run. In this 
    // method you should instantiate the window, load the UI into it and then make the window
    // visible.
    //
    // You have 17 seconds to return from this method, or iOS will terminate your application.
    //
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        Google.MobileAds.MobileAds.Configure("ca-app-pub-XXXXXXXXXXXXXXXXXX~XXXXXXXX");

        Xamarin.Forms.Forms.Init();
        LoadApplication(new App());

        return base.FinishedLaunching(app, options);
    }
}

字符组已更改为排除组。 this.colorPreset1=this.colorPreset1.replace(/[^0-9a-zA-Z]/g, ''); 将匹配列表中未包含的任何字符。如您所愿,它只会与您要保留的字符匹配。

字符串的锚点已删除-您要替换所有非字母数字字符,因此它们位于何处都没有关系。

添加了全局标记[^],因此它将替换所有匹配项,而不仅仅是第一个匹配项。

答案 1 :(得分:2)

通过在正则表达式周围添加^$,您可以明确地告诉它匹配以此模式开头和结尾的字符串。

因此,只有在字符串的所有内容均与该模式匹配时,它才会替换搜索到的模式。

如果要匹配每次出现的非数字或字母字符,则必须删除^起始约束和$结束约束,而且还必须更改模式本身:

[A-Za-z0-9]

匹配字母或数字字符,您需要与此相反(要反转字符类,请在字符类的开头添加一个^

[^A-Za-z0-9]

最后在正则表达式中添加g选项,以使其与每个匹配项匹配(否则将仅替换第一个匹配项):

/[^A-Za-z0-9]+/g

答案 2 :(得分:0)

JavaScript RegEx replace将仅替换第一个找到的值。如果您在模式中指定g参数,则表示全局或“全部替换”。

this.colorPreset1=this.colorPreset1.replace(/[^0-9a-zA-Z]/g, '');

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

What does the regular expression /_/g mean?